我在Oracle Service Bus 11G中为Web服务创建代理。收到请求后,当响应为200时,一切正常,OSB返回相同的200个代码。
现在,在我的WebService中,我根据某些逻辑处理引发错误400,406,403等,但OSB总是引发错误500.
有一种方法可以让OSB转发包括错误代码在内的简单答案吗?
谢谢。
答案 0 :(得分:4)
向业务服务添加故障处理程序
从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