我正在Oracle Service Bus 11G中为Web服务创建代理 . 收到请求后,当响应为200时,一切正常,OSB返回相同的200代码 .
现在,在我的WebService中,我根据某些逻辑处理引发错误400,406,403等,但OSB总是引发错误500 .
有一种方法可以让OSB转发包括错误代码在内的简单答案吗?
谢谢 .
向业务服务添加故障处理程序
从 data($fault//*:http-response-code) 和 data($fault//*:reason) (或类似的东西)中提取变量
data($fault//*:http-response-code)
data($fault//*:reason)
插入:
<http:http-response-code>$response_code_variable</http:http-response-code>作为最后的孩子./ctx:transport/ctx:response在变量 - $inbound
<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
<tp:response-message>$response_reason_variable</tp:response-message>
./ctx:transport/ctx:response/ctx:response-code
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