wsimport – 两个声明导致冲突,给出相同的行

尝试使用wsimport为SOAP端点生成客户端。 WSDL和使用的所有XSD文件都是本地副本。

这是正在执行的命令:

 wsimport ./bwWsdl.xml -p com.generated -Xnocompile -d ../src -extension -keep -XadditionalHeaders -B-XautoNameResolution 

这给出了这个错误:

 [ERROR] Two declarations cause a collision in the ObjectFactory class. line 16 of file:/schemas/newSchema.xsd [ERROR] (Related to above error) This is the other declaration. line 16 of file:/schemas/newSchema.xsd 

请注意,报告的碰撞的行号是相同的。

这是架构:

     Description here.         More description here.    

我已经尝试删除类型定义,但它在很多其他地方引用。

有谁可以提供任何有关如何使其工作的建议?

谢谢

编辑:

这是WSDL导入这些模式的行:

               

感谢@Petru Gardea的帮助,我最终通过将-p com.generated包规范省略到wsimport来解决这个问题。 所以这就是我最终能够运行以解决这个问题:

 wsimport ./bwWsdl.xml -Xnocompile -d ../src -extension -keep -XadditionalHeaders -B-XautoNameResolution 

其原因是wsimport试图在同一个包中使用相同的名称和/或方法生成类,这显然是不能做到的。

因此,通过省略强制包声明, wsimport能够将类放在它想要的任何包中,根据WSDL中的定义,这可以是3个不同的包。

再次感谢@Petru!