【发布时间】:2025-12-30 21:30:14
【问题描述】:
我正在尝试在不同平台上托管的服务之间建立一些通信:.net java。我不可能更改 Java 部分中的任何内容。这是我们无权访问的第三方软件。
我的问题基本上归结为服务的期望(使用 SoapUI 测试)和 WCF 发送的内容(通过跟踪测试)之间的细微差别。
预期(或至少允许):
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://servicenamespace/">
<s:Header />
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ser:method >
<param1/>
<param2>xxx</param2>
<param3>zzz</param3>
</ser:method>
</s:Body>
</s:Envelope>
.NET 实际尝试发送的内容:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header/>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<method xmlns="http://servicenamespace/">
<param1/>
<param2>xxx</param2>
<param3>zzz</param3>
</method>
</s:Body>
</s:Envelope>
如您所见,差异是微妙的。 servicen 所期望的是标题标签中的命名空间声明...... 有没有办法解决这个问题,最好以低影响(例如不拦截和更改消息)的方式?也许通过以其他方式使用属性?
【问题讨论】:
标签: java wcf soap interop message