[JAXB]两个类具有相同的XML类型名称“ objectFactory”

时间:2018-11-22 09:04:13

标签: jaxb osgi java-11

我正在使用JDK 11,OSGI 3.13.0.v20180409-1500和jaxb- [core,impl,api]-2.3.0

我在osgi启动过程中看到以下错误

com.sun.xml.bind.v2.runtime.IllegalAnnotationsException:2个IllegalAnnotationExceptions |两个类具有相同的XML类型名称“ objectFactory”。使用@ XmlType.name和@ XmlType.namespace为其分配不同的名称。|?此问题与以下位置有关:| ?? com.xxx.xxx.xxx.inference.ObjectFactory |?此问题与以下位置有关以下位置:| ?? com.xxx.xxx.types.ObjectFactory |处的两个类具有相同的XML类型名称“ objectFactory”。使用@ XmlType.name和@ XmlType.namespace为其分配不同的名称。|?此问题与以下位置有关:| ?? com.xxx.xxx.types.ObjectFactory |?此问题与以下有关位置:| ?? com.xxx.xxx.xxx.message.ObjectFactory |     在com.sun.xml.bind.v2.runtime.IllegalAnnotationsException $ Builder.check(IllegalAnnotationsException.java:106)     在com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:471)     在com.sun.xml.bind.v2.runtime.JAXBContextImpl。(JAXBContextImpl.java:303)     在com.sun.xml.bind.v2.runtime.JAXBContextImpl。(JAXBContextImpl.java:139)     在com.sun.xml.bind.v2.runtime.JAXBContextImpl $ JAXBContextBuilder.build(JAXBContextImpl.java:1156)     在com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:165)     在com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:289)     在java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)     在java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.base / java.lang.reflect.Method.invoke(Method.java:566)     在javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:217)     在javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:175)     在javax.xml.bind.ContextFinder.find(ContextFinder.java:353)     在javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:508)     在javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:465)

添加@ XmlType.name和@ XmlType.namespace没有帮助

经过更多调试后,似乎在“ com.sun.xml.bind.v2.model.impl.ModelBuilder.java”(jaxb-impl)中,getClassAnnotation返回null

/ **      *此方法用于向模型添加根引用。      * /     公共NonElement getTypeInfo(Ref ref){         // TODO:处理XmlValueList         断言!ref.valueList;         C c = nav.asDecl(ref.type);         if(c!= null && reader.getClassAnnotation(XmlRegistry.class,c,null / TODO:对吗? /)!= null){             if(!registries.containsKey(nav.getPackageName(c)))                 addRegistry(c,null);             返回null; // TODO:这是正确的吗?         }其他             返回getTypeInfo(ref.type,null);     }

您能帮我解决这个问题吗?让我知道您是否需要更多详细信息

0 个答案:

没有答案