Configurable HTTP Status Codes in Inbound REST Responses
The Siebel REST Inbound framework can return standardized HTTP Status Codes and structured JSON error responses for data, service, workspace, and workflow REST services. The response format aligns with common REST API conventions and the Zalando Problem specification.
Use this feature to map a Siebel error identifier to the HTTP Status Code that best describes the condition returned to an API client. Customer mappings provide control over response status values without changing Oracle-delivered configuration. This feature is optional.
- Standard HTTP Status Codes for REST responses.
- Structured JSON error payloads.
- Customer-controlled mapping of Siebel error identifiers to HTTP Status Codes.
- Improved interoperability for REST clients and clearer OpenAPI documentation.
Standardized Error Response Format
{
"type": "https://opensource.zalando.com/restful-api-guidelines/#status-code-503",
"title": "Service Unavailable",
"status": 503,
"detail": "Database connection failed",
"errorCode": "SBL-EAI-05001"
}
In the mapping file, these are the parameters and the ones you can customize.
| Field | Description | Customer configurable |
|---|---|---|
| type | URI reference that identifies the error category in the Zalando specification. | Yes |
| title | Short summary of the error. | Yes |
| status | HTTP status code returned in the response. | Yes |
| detail | Detailed error message. | No |
| errorCode | Original Siebel error identifier. | No |
Configure HTTP Status Code Mappings
Siebel uses proprietary error identifiers for different error conditions. Two JSON mapping files transform those identifiers into appropriate HTTP Status Codes.
Oracle-Delivered Mapping File
The siebel-error-map.json file is packaged in siebel.war for
applicationcontainer_external. It contains Oracle-provided
default mappings. Do not modify this file because upgrades can replace it.
Customer Mapping File
Create custom-error-map.json in the webapps folder of each
applicationcontainer_external Tomcat instance. Use the same
file content on every instance.
- Add a customer mapping from a Siebel error identifier to an HTTP Status Code.
- Override an Oracle-delivered mapping when a different HTTP Status Code is required.
- Enable or disable standardized error responses.
Enable Standardized Error Responses
StandardizedErrorMessages is false by default, which preserves
existing response behavior. To return responses in the standardized format, set the
value to true in custom-error-map.json and restart
applicationcontainer_external."StandardizedErrorMessages": {
"StandardizedErrorMessages": true
}
Example Customer Mapping
The following example maps three Siebel error identifiers to HTTP Status Code 406 and supplies a customer title for each response. You give the title you wish to be associated with the Siebel error identifier to give the client more information on what to do about the error.
{
"StandardizedErrorMessages": {
"StandardizedErrorMessages": false
},
"SBL-EAI-04451": {
"type": "https://opensource.zalando.com/restful-api-guidelines/#status-code-406",
"title": "The value entered for the field value is too long...",
"status": "406"
},
"SBL-DAT-00235": {
"type": "https://opensource.zalando.com/restful-api-guidelines/#status-code-406",
"title": "The value entered for the field value is too long",
"status": "406"
},
"SBL-BPR-00162": {
"type": "https://opensource.zalando.com/restful-api-guidelines/#status-code-406",
"title": "Error invoking service EAI Siebel Adapter at method Upsert.",
"status": "406"
}
}
Mapping Precedence and Runtime Behavior
When both mapping files define the same Siebel error identifier,
custom-error-map.json takes precedence. This lets customers
change HTTP Status Codes without modifying Oracle-delivered content.
- Mapping files load once during Application Interface or Tomcat startup and remain cached in memory.
- Restart the AI node after changing either mapping file.
- If no mapping exists, Siebel preserves the existing error message, generates the standardized JSON response when enabled, and applies a default HTTP Status Code where possible.
- Some errors that occur before the error framework is invoked can continue to use the legacy response format.
- One Siebel error identifier maps to one HTTP Status Code. Multiple identifiers can map to the same HTTP Status Code.
OpenAPI Documentation
This is the standardized error response schema in the Swagger or OpenAPI definition for REST services that use this feature.
components:
schemas:
ErrorModel:
type: object
required:
- type
- title
- status
properties:
type:
type: string
title:
type: string
status:
type: integer
detail:
type: string
errorCode:
type: string
Upgrade and Implementation Guidance
Follow these guidelines to maintain upgrade-safe, standards-aligned, and thoroughly tested custom error mappings.
- Keep all customer mappings in
custom-error-map.json. - Do not modify siebel-error-map.json; an upgrade can replace Oracle-delivered mappings.
- Preserve custom-error-map.json during upgrades by making a backup before an update and restoring the custom mapping file afterwards.
- Align HTTP Status Code mappings with enterprise API standards.
- Update Swagger or OpenAPI definitions for affected public APIs.
- Test negative scenarios after changing mappings.