Возврат кода ошибки служебной шины оракула

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

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

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

Спасибо.

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

Другие вопросы по тегам