web-services – 使用Jboss 4.2.3ga的没有名称空间前缀的JAXWS问题

web-services – 使用Jboss 4.2.3ga的没有名称空间前缀的JAXWS问题,第1张

概述我有一个使用@WebServiceannotation作为JAXWS webservice发布的 java服务.该服务很好地部署在Jboss应用服务器4.2.3ga上(由应用服务器提供Jax-ws实现). 当Soap消息如下所示时,该服务运行良好: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 我有一个使用@WebServiceannotation作为JAXWS webservice发布的 java服务.该服务很好地部署在Jboss应用服务器4.2.3ga上(由应用服务器提供Jax-ws实现).

当Soap消息如下所示时,该服务运行良好:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pref="mynamespace">   <soapenv:header/>   <soapenv:Body>        <pref:mymethod>            <arg0>value</arg0>        </pref:mymethod>   </soapenv:Body></soapenv:Envelope>

当Soap消息看起来像这样时失败了:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="mynamespace">   <soapenv:header/>   <soapenv:Body>        <mymethod>            <arg0>value</arg0>        </mymethod>   </soapenv:Body></soapenv:Envelope>

失败我的意思是“mymethod”被调用,但是arg0是null.

有人知道这是JAX-WS API或BUG的预期行为吗?我没有找到任何一个或另一个的参考.

有没有人使用另一个JAX-WS堆栈遇到同样的问题(或成功)?

解决方法 在工作代码中没有默认命名空间和< mymethod>绑定到带有前缀的mynamespace.
因为< arg0> element没有前缀,它在null命名空间中.

在失败的代码中,mynamespace被设置为默认命名空间.因为< mymethod>和< arg0>没有任何前缀,它们都有mynamespace作为其名称空间URI.

不允许将空名称空间URI绑定到任何前缀.因此,您需要继续在< mymethod>中使用名称空间前缀.或者您需要覆盖< arg0>中的默认命名空间像这样:

<arg0 xmlns="">

请注意,这将设置< arg0>的所有未加前缀的子元素.除非您再次覆盖默认命名空间,否则返回null.

总结

以上是内存溢出为你收集整理的web-services – 使用Jboss 4.2.3ga的没有名称空间前缀的JAXWS问题全部内容,希望文章能够帮你解决web-services – 使用Jboss 4.2.3ga的没有名称空间前缀的JAXWS问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存