我正在使用Talend tSOAP组件来发送肥皂请求。如果我使用基于Java的测试Web服务,则会收到肯定的响应。如果我使用基于ASP.NET的测试服务,则会收到如下错误消息:
<s:Fault xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Code><s:Value>s:Sender</s:Value><s:Subcode><s:Value xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</s:Value></s:Subcode></s:Code><s:Reason><s:Text xml:lang="de-DE">The 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:Text></s:Reason></s:Fault>
我的请求消息如下:
"<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:urn=\"urn:msv3:v1\">
<soap:Header/>
<soap:Body>
<urn:verbindungTesten>
<clientSoftwareKennung>YAMA</clientSoftwareKennung>
</urn:verbindungTesten>
</soap:Body>
</soap:Envelope>"
我找不到错误,需要帮助。
答案 0 :(得分:0)
.net和Java WSDL语法可能会有所不同-为了帮助您进行故障排除,您应该查看每个测试服务器的WSDL并进行比较以帮助您找出它们之间的区别。
我还建议您使用称为tESBConsumer的Talend组件,而不是tSOAP,因为tESBConsumer可以解析WSDL并为您构建SOAP请求信封。您可能需要将其与tXMLMap结合使用,并将架构保存到元数据中,但是https://help.talend.com上的文档应该可以为您提供帮助-您可以按组件进行搜索,并且也有示例。