10

当我尝试在 RAD 中发布我的工作区时,我收到此错误“两个类具有相同的 xml 类型名称”,可能是因为相同的类名称存在于同一个包中,但存在于两个不同的 jar 中。似乎@XmlType 注释需要在这些类的源中为其属性名称和命名空间具有不同的值。我尝试了 Apache CXF 中可用的 wsdl2java,但我无法让它生成这个命名空间属性。我尝试摆弄 -p 包选项,但这只是为了将生成的源代码放在指定的包中。

任何想法如何为 wsdl 中遇到的每个元素生成此命名空间属性?TIA。

4

2 回答 2

13

感谢丹尼尔的回答:

CXF JAXB JAXBEncoderDecoder 解组错误:具有合格元素时出现意外元素

我了解到 wsdl2java 有一个参数 -xjc-npa 对我有帮助。这会将 XmlType.name 和 XmlType.namespace 注释添加到生成的类中,因此如果您具有相同的类名但在不同的命名空间中,这将不是问题

于 2011-06-03T07:35:50.250 回答
1

我遇到了一个名为“SubmitDataResponse”的对象,我将其用作名为“submitData”的 Web 服务方法的返回对象。当我尝试重命名对象时,错误消失了。在我看来,CXF 正在根据方法名称创建自己的返回对象(在本例中为 submitData() -> "SubmitDataResponse")。您可能想尝试重命名课程,看看您是否遇到同样的问题。也许有人可以用一种方法来保持我们的类以我们希望的方式命名(可能带有一些注释)。

我希望这有帮助。

于 2011-03-21T20:45:18.657 回答