вернуть код ошибки служебной шины Oracle

Я создаю прокси-сервер в Oracle Service Bus 11G для веб-сервиса. После получения запроса и при ответе 200 все ок, OSB возвращает тот же код 200.

Теперь в моем WebService я поднимаю ошибку 400, 406, 403 и т. д. в зависимости от некоторой логической обработки, но OSB всегда вызывает ошибку 500.

Есть ли способ заставить OSB переслать простой ответ, включая код ошибки?

Спасибо.


person Miguel Leal    schedule 27.01.2017    source источник


Ответы (1)


Добавьте обработчик ошибок в бизнес-службу

Извлечь переменные из data($fault//*:http-response-code) и data($fault//*:reason) (или что-то подобное

Вставлять:

<http:http-response-code>$response_code_variable</http:http-response-code>
как последний дочерний элемент
./ctx:transport/ctx:response
В переменной — $inbound

Вставлять:

<tp:response-message>$response_reason_variable</tp:response-message>
после ./ctx:transport/ctx:response/ctx:response-code
В переменной – $inbound

person Trent Bartlem    schedule 27.01.2017