问题描述
我正在调用 Oracle Service Bus 12c 中的业务服务,该服务返回 SOAP 响应。但是,它包含的标头将 Content-Type 指定为“text/xml”。:
# curl -i "http://third.party.com:2345/api?action=sendmessage&username=myuser&password=mypass&recipient=123456&originator=1234&messagedata=Test123"
HTTP/1.1 200 OK
Cache-Control: no-cache,must-revalidate
Pragma: no-cache
Content-Length: 492
Content-Type: text/xml
Last-Modified: Sun,27 Dec 2020 20:03:46 GMT
Server: OzekiNG/4.1.12 Microsoft-HTTPAPI/2.0
Date: Sun,27 Dec 2020 15:03:45 GMT
<?xml version="1.0" encoding="utf-8"?>
<response>
<action>sendmessage</action>
<data>
<acceptreport>
<statuscode>0</statuscode>
<statusmessage>Message accepted for delivery</statusmessage>
<messageid>2994bd84-2699-4344-bee4-93ce21aa5202</messageid>
<originator>1234</originator>
<recipient>123456</recipient>
<messagetype>TEXT</messagetype>
<messagedata>Test123</messagedata>
</acceptreport>
</data>
</response>
OSB 对此抛出异常:
<Dec 27,2020 10:06:09,409 PM PKT> <Error> <oracle.osb.resources.service.service> <OSB-398000> <Exception in OutboundRestHandler.handleResponse,com.bea.alsb.ws.codec.CodecException: No acceptable representation for response with "text/xml" media type was found
com.bea.alsb.ws.codec.CodecException: No acceptable representation for response with "text/xml" media type was found
at com.bea.wli.sb.service.handlerchain.handlers.OutboundWsdlRestHandler$AbstractResponseMessage.getPart(OutboundWsdlRestHandler.java:375)
at com.bea.wli.sb.service.handlerchain.handlers.OutboundWsdlRestHandler$AbstractResponseMessage.getPart(OutboundWsdlRestHandler.java:318)
我正在尝试通过使用替换操作来替换它,我尝试将其放置在 Pipeline Pare Node1 和 RouteNode1 中:
Location: header
$inbound/ctx:transport/ctx:response/tp:headers/http:Content-Type
Value: "application/xml"
Replace node contents
到目前为止没有帮助。显然响应头需要在路由节点看到之前修改。
那么我应该在哪里更改它,以及如何更改?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)