首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OSB -在代理服务中处理来自Restful服务的Http错误

OSB -在代理服务中处理来自Restful服务的Http错误
EN

Stack Overflow用户
提问于 2015-02-11 09:23:54
回答 3查看 9K关注 0票数 0

我正在从OSB代理服务调用REST服务,如果rest服务响应是有效的响应,即没有错误,该服务运行良好。但是,如果rest服务使用http错误代码(例如400坏请求)进行应答,除了http错误代码之外,我无法捕获其他任何内容:

OSB中的$fault变量:

代码语言:javascript
复制
<con:fault  xmlns:con="http://www.bea.com/wli/sb/context">
<con:errorCode>BEA-382502</con:errorCode>
<con:reason>
OSB Service Callout action received an error response
</con:reason>
<con:details>
<con1:ErrorResponseDetail   xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
<con1:http-response-code>400</con1:http-response-code>
</con1:ErrorResponseDetail>
</con:details>
<con:location>
<con:node>PipelinePairNode1</con:node>
<con:pipeline>PipelinePairNode1_request</con:pipeline>
<con:stage>stage1</con:stage>
<con:path>request-pipeline</con:path>
</con:location>
</con:fault>

但是rest服务,不仅响应了400坏请求,而且还添加了一条消息:

代码语言:javascript
复制
 <Error>
    <Message>The message header contains an invalid brand code.</Message>
 </Error>

我无法在代理服务中处理。是否有人知道在OSB中是否可以访问此消息细节,或者这是否是一个限制?

rest服务显然是在发送消息,因为直接通过soap调用它,我将得到以下响应:

代码语言:javascript
复制
 HTTP/1.1 400 Bad Request
 Cache-Control: no-cache
 Pragma: no-cache
 Content-Length: 84
 Content-Type: application/xml; charset=utf-8
 Expires: -1
 Server: Microsoft-IIS/8.5
 X-AspNet-Version: 4.0.30319
 X-Powered-By: ASP.NET
 Date: Mon, 09 Feb 2015 16:15:32 GMT


 <Error><Message>The message header contains an invalid brand code.</Message></Error>

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-20 16:41:12

我刚刚发现这是一个OSB错误,如果返回HTTP错误代码400,如果http内容是"Application/XML“,则忽略消息。

甲骨文在上月底发布了一个修补程序来解决这个问题,我已经测试过这个问题,而且它是有效的。我现在可以在$body变量中获得消息详细信息。

修补程序: 16986497

票数 1
EN

Stack Overflow用户

发布于 2015-02-19 12:17:24

如果我明白你的问题,你想得到除了http代码之外的信息错误吗?

我认为您应该在您的消息流中使用一个errorHandler,这样您就可以捕获错误并随心所欲地使用它。

票数 0
EN

Stack Overflow用户

发布于 2015-12-01 11:15:14

代理服务操作选择算法不能从请求中确定操作名称,也不能返回无效操作(一个不在WSDL或null中)。可能的原因包括:

计算操作时发生错误。

操作选择算法返回null。

操作选择算法返回不属于WSDL声明的操作的操作。

来源

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28450646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档