我在 Apache Geronimo 2.1.3 上有一个 Web 服务应用程序。
我正在使用 JAX-WS,注释 POJOS,使用 SOAP 1.1。(使用 Sun JDK 1.5)
各种客户端都可以顺利使用 Web 服务。
一位新客户无法正常工作。在工作客户端中,只有soapenv:Body 下的子元素有命名空间声明,子元素的子元素没有命名空间声明。在新客户端中,soapenv:Body 的所有后代,包括孩子的孩子,都有命名空间声明。
本质上,这是有效的:
<soapenv:Body>
<ns1:Echo>
<Message>Hello world</Message>
...
但这不会:
<ns1:Echo>
<ns1:Message>Hello world</ns1:Message>
...
登录应用程序会显示 Message 为空,而不是“Hello world”
这个“坏”请求可以吗?看起来它证实了 WS-I Basic Profile?
客户端程序无法更改。有没有办法让我覆盖某些东西,让这个请求的两个版本都可以工作?