如何解决修改 OSB 响应管道中的标头
我正在调用 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 举报,一经查实,本站将立刻删除。