当我尝试在RAD中发布我的Workspace时,出现此错误“两个类具有相同的xml类型名称”,可能是因为同一个包中存在相同的类名,但在两个不同的罐子。而且似乎@XmlType注释需要在这些类的源中为其属性名称和名称空间具有不同的值。我尝试了Apache CXF中提供的wsdl2java,但我无法使其生成此名称空间属性。我试着摆弄-p包选项,但这只是将生成的源文件放在指定的包中。两个类具有相同的xml类型名称
任何想法如何为wsdl中遇到的每个元素生成此名称空间属性? TIA。
当我尝试在RAD中发布我的Workspace时,出现此错误“两个类具有相同的xml类型名称”,可能是因为同一个包中存在相同的类名,但在两个不同的罐子。而且似乎@XmlType注释需要在这些类的源中为其属性名称和名称空间具有不同的值。我尝试了Apache CXF中提供的wsdl2java,但我无法使其生成此名称空间属性。我试着摆弄-p包选项,但这只是将生成的源文件放在指定的包中。两个类具有相同的xml类型名称
任何想法如何为wsdl中遇到的每个元素生成此名称空间属性? TIA。
感谢丹尼尔的anwser:
CXF JAXB JAXBEncoderDecoder unmarshalling error : unexpected element when having qualified elements
我了解到有一个参数-xjc-NPA对WSDL2Java的这帮助了我。 这会将XmlType.name和XmlType.namespace注释添加到生成的类中,所以如果您具有相同的类名但位于不同的名称空间中,则这不会成为问题
我遇到了一个名为“SubmitDataResponse”的对象,该对象用作我的名为“submitData”的Web服务方法的返回对象。当我尝试重命名对象时,错误消失了。在我看来,CXF正在基于方法名称创建自己的返回对象(本例中为submitData() - >“SubmitDataResponse”)。你可能想尝试重新命名这个类,看看你是否有同样的问题。也许有人可以用一种方式让我们的班级以我们希望他们的方式命名(可能带有一些注释)。
我希望这会有所帮助。
后续操作:我添加了@XmlType(namespace =“com .company.example“)到我原来的返回对象类,它的工作。所以我不需要重命名我的返回对象类,只要我使用XmlType.namespace注释。 – HawkeyeFan 2011-03-21 20:53:06
HawkeyeFan,谢谢你的回答,但是,不,这不是我面临的问题。这是关于两个有两个相同包名的罐子的课程。最终,我必须删除其中一个并与之共存。是的,命名空间属性似乎可以解决这个问题,但是wsdl2java可以生成它吗?也许我需要指定/配置一些东西? – asgs 2011-03-21 20:55:54