【发布时间】:2014-09-20 12:54:05
【问题描述】:
我有一个来自 CXF 的 web 服务,其中 defaultElementForm="unqualified",托管在 Wildfly 8 中,使用最新的 Java 7。当我有 java 客户端连接时,如果从 CXF 生成,它们可以正常工作,因为它们的肥皂消息内容看起来像:
<ns:MyCall1 xmlns:ns="http://example.com/">
<MyCall2>
...
.net 客户端是完全相同的消息,只有一个区别,这不起作用:
<MyCall1 xmlns="http://example.com/">
<MyCall2 xmlns="">
...
不幸的是,它失败的原因是,它看起来像 JAXB 完全忽略了 xmlns="",所以它认为命名空间仍然是 http://example.com/,这与不合格的 "" 不匹配。如果我将其更改为 xmlns="a",则会收到错误消息,指出 a 与预期的命名空间“”不匹配,但如果我将其保留为“”,则会显示 http://example.com/ 与预期的“”不匹配。所以它忽略了清除默认命名空间所需的 xmlns=""。
必须有某种设置或某种方式使通过 jaxb 的 java web 服务正确解释。请帮忙!
【问题讨论】:
标签: java .net web-services soap jaxb