WCF客户端与Java WS对话,异常:内容类型应用程序/xop+;xml;类型=";应用程序/soap+;xml";响应消息的格式
我在与Java WS交谈时遇到问题。我正在使用“wsHttpBinding”绑定和客户端证书进行身份验证,消息编码设置为“Text”,.net framework为4.0。服务器端是Java,我无法控制它。连接是通过Fiddler代理的(这是我在网上看到请求的方式,比跟踪“System.Net”更方便用户) 我得到的例外情况如下: 内容类型应用程序/xop+xml;响应消息的type=“application/soap+xml”与绑定的内容类型不匹配(application/soap+xml;charset=utf-8)。 如果我将消息编码更改为“Mtom”,则异常会更改: 内容类型应用程序/xop+xml;响应消息的type=“application/soap+xml”与绑定的内容类型不匹配(multipart/related;type=“application/xop+xml”)。 服务器正在接受请求的“文本”和“Mtom”消息编码,响应总是相同的。这是我从服务器得到的原始响应:WCF客户端与Java WS对话,异常:内容类型应用程序/xop+;xml;类型=";应用程序/soap+;xml";响应消息的格式,wcf,soap,wcf-binding,mtom,xop,Wcf,Soap,Wcf Binding,Mtom,Xop,我在与Java WS交谈时遇到问题。我正在使用“wsHttpBinding”绑定和客户端证书进行身份验证,消息编码设置为“Text”,.net framework为4.0。服务器端是Java,我无法控制它。连接是通过Fiddler代理的(这是我在网上看到请求的方式,比跟踪“System.Net”更方便用户) 我得到的例外情况如下: 内容类型应用程序/xop+xml;响应消息的type=“application/soap+xml”与绑定的内容类型不匹配(application/soap+xml;c
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>
若我尝试使用工具“soapUI”(用Java编写,可从“www.soapUI.org”获得)调用web服务,那个么服务调用将成功执行,响应将被解析,不会出现任何问题
仅供参考,这是一个来自的交叉帖子,但还没有回复
欢迎提出任何意见,提前感谢
Alex尝试将绑定配置中的消息编码设置为
messageEncoding=“Mtom”
和basicHTTPBinding
,而不是wsHTTP
one
希望有帮助 我也在使用CXF,并且有一个C#client。尝试修改绑定设置,将
textMessageEncoding
替换为mtomessagencoding
。大概是这样的:
<binding name="yourSoapBinding">
<mtomMessageEncoding messageVersion="Soap12"/>
<httpTransport />
</binding>
我面临着完全相同的问题。创建自定义绑定并设置messageVersion=“Soap12”对我来说不起作用。我能看到的一个区别是我的web服务调用是https,但这篇文章似乎是针对http的。你找到解决方案了吗?我也有同样的问题。但是第一个答案中建议的绑定配置对web.config.HTTP和HTTPS无效,这没有区别:这只是传输细节。问题是邮件的格式。我遇到的问题是,政府实体正在使用一些Java服务器(使用IBM WebSphere堆栈),而它们的堆栈正在生成不一致的消息。在我的例子中有两种选择:1)使用SoapUI作为外部应用程序,它将下载消息,然后在C#2中解析XML。2)编辑来自网络的原始XML,并将消息XML更改为符合标准->这样一切都在C#中完成。
<binding name="yourSoapBinding">
<mtomMessageEncoding messageVersion="Soap12"/>
<httpTransport />
</binding>