使用Eclipse生成JAXB Java类遇类名冲突错误求助
解决Eclipse中JAXB生成Java类的类名冲突问题
这事儿我熟,就是JAXB生成Java类时碰到了类名重复的冲突,咱们直接通过自定义绑定配置就能搞定!
从错误信息来看,com.xml.apis.schemas.MPLSVPNListItem 这个类名已经被占用了——要么是你项目里已经有手动创建的同名类,要么是多个XSD文件都定义了同名的结构,导致JAXB要生成重复的类。
具体修复步骤:
- 打开你的绑定文件
jaxb_binding.xml(路径是C:/Workspace/MyFiles/WebContent/WEB-INF/XSDFiles/jaxb_binding.xml),定位到第9行附近的绑定配置。 - 给冲突的类添加自定义重命名规则,比如如果是某个XSD里的
MPLSVPNListItem结构导致冲突,就给它指定一个新类名:
要是因为不同XSD生成的类包名重复,也可以给其中一个指定专属包:<!-- 针对目标complexType的重命名绑定 --> <jaxb:bindings node="//xs:complexType[@name='MPLSVPNListItem']"> <jaxb:class name="MPLSVPNListItemV2"/> <!-- 换成一个不重复的新名字即可 --> </jaxb:bindings><jaxb:bindings schemaLocation="你的另一个schema文件.xsd"> <jaxb:package name="com.xml.apis.schemas.vpn.v2"/> <!-- 给这个XSD生成的类单独指定包名 --> </jaxb:bindings> - 保存修改后的绑定文件,回到Eclipse重新执行Java类生成操作。
额外排查点:
- 先检查项目里有没有手动创建的
MPLSVPNListItem类,如果有,要么删掉手动创建的版本,要么让JAXB生成的类用不同名字。 - 核对所有引用的XSD文件,确认是不是有多个文件定义了同名的
MPLSVPNListItem结构,找到重复源再针对性处理。
这样调整后,类名冲突的问题就能顺利解决啦。
内容的提问来源于stack exchange,提问作者hell_storm2004
相关产品推荐
相关产品推荐

