You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用wsimport生成Java类时遇类型重复定义错误求助

解决wsimport生成Java类时的“NonEmptyStringType已定义”错误

我尝试基于XTA2 V3 WSDL(带引号的“标准”,因为真正标准的WSDL应该能直接用标准工具生成,不用打补丁)生成Java类,这个WSDL导入了大量互相引用的Schema和DTD。运行wsimport时出现以下错误:

[ERROR] 'NonEmptyStringType' is already defined
Zeile 17 von file:/C:/Users/itbc000257/Documents/projekte/km-tafe/src/main/resources/META-INF/wsdl/OSCI_MessageMetaData_V2.02.xsd
[ERROR] (related to above error) the first definition appears here
Zeile 12 von file:/C:/Users/itbc000257/Documents/projekte/km-tafe/src/main/resources/META-INF/wsdl/OSCI_MessageMetaData_V2.02.xsd

解决方法

  • 打开OSCI_MessageMetaData_V2.02.xsd文件,检查第12行和第17行,确认是否存在NonEmptyStringType的重复定义。如果是文件内部冗余定义,直接删除其中一个即可,注意要保证所有引用该类型的代码都能指向剩余的定义。
  • 若重复是循环引用导致的重复加载,调整导入逻辑:
    • 用xs:import替换xs:include(如果场景适用),通过命名空间隔离避免重复解析。
    • 排查是否存在同一Schema被多路径导入的情况,修正导入路径确保只加载一次。
  • 上述方法无效时,给wsimport添加参数强制处理命名冲突:
    使用-B-XautoNameResolution参数让工具自动处理重复类型:
    wsimport -B-XautoNameResolution your_wsdl_file.wsdl
    
    该参数会让JAXB自动为重复类型生成不同的Java类名,绕过编译错误。

内容的提问来源于stack exchange,提问作者dschulten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:52:08