趁着早上有时间,赶紧记录一下,哈哈。
错误提示如下:
1、英文版:
<s:Envelope xmlns:s=“http://schemas.xmlsoap.org/soap/envelope/”><s:Body><s:Fault>a:ActionNotSupportedThe message with Action ‘’ cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</s:Fault></s:Body></s:Envelope>
2、中文版:
<s:Envelope xmlns:s=“http://schemas.xmlsoap.org/soap/envelope/”><s:Body><s:Fault>a:ActionNotSupported由于 ContractFilter 在 EndpointDispatcher 不匹配,因此 Action 为“”的消息无法在接收方处理。这可能是由于协定不匹配(发送方和接收方 Action 不匹配)或发送方和接收方绑定/安全不匹配。请检查发送方和接收方是否具有相同的协定和绑定(包括安全要求,如 Message、Transport、None)。</s:Fault></s:Body></s:Envelope>
原因:
webservise接口都会有默认的SOAPAction值,一般为http://tempuri.org。造成此情况的原因也很多,基本上都是服务端的问题。
处理方法:
在请求头中添加"SOAPAction",对应的内容有两种获取方法
1、在使用soapui测试接口的时候,可以查看到当前方法内的Action;
2、浏览器打开webservice的地址,在每个方法下面都会有一个soapAction属性(也可能是action属性)