当前位置: 首页 > 知识库问答 >
问题:

WCF客户端与Java WS对话,例外情况:内容类型Application/XOP+XML;响应消息的type=“application/soap+xml”

姬俊驰
2023-03-14

我在和Java WS对话时遇到了问题。我使用“wshttpbinding”绑定与客户端证书进行身份验证,消息编码设置为“text”,.NET framework为4.0。服务器端是Java,我无法控制它。连接是通过Fiddler代理的(这就是我在线上看到请求的方式,比跟踪“System.NET”用户友好得多)。

我得到的例外是:

HTTP/1.1 200 OK
X-Backside-Transport: OK OK
Connection: Keep-Alive
X-Powered-By: Servlet/3.0
SOAPAction: ""
Content-Type: application/xop+xml; type="application/soap+xml"
Content-Language: en-US
Date: Thu, 25 Jul 2013 13:05:09 GMT
Content-Length: 628

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope  ...   </env:Envelope>

在我阅读的所有文档中,返回的响应介于常规SOAP消息和MTOM消息之间。我之所以这么说,是因为我看到的每个例子都说,MTOM请求和响应使用MIME作为通信的信封:常规的SOAP消息被封装在XOP包中,然后这个XOP消息被MIME封装。甚至W3C推荐标准也使用MIME作为XOP包:W3C:XML-binary Optimized packaging。本链接节选:

Content-Type: Multipart/Related;boundary=...

如果我尝试使用工具“soapui”(用Java编写的,可从“www.soapui.org”获得)调用web服务,服务调用就会成功执行,响应就会被解析,没有任何问题。

请注意,这是MSDN WCF论坛的一个交叉帖子,但还没有回复。

亚历克斯

共有1个答案

秦经义
2023-03-14

我也在使用CXF,并且有一个C#客户机。尝试修改绑定设置,将TextMessageEncoding替换为MTomMessageEncoding。类似这样的事情:

<binding name="yourSoapBinding">
    <mtomMessageEncoding messageVersion="Soap12"/>
    <httpTransport />
</binding>
 类似资料: