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!