[JAXB] Два класса имеют одно и то же имя типа XML «objectFactory» - PullRequest
0 голосов
/ 22 ноября 2018

Я использую 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 для назначения им разных имен. |? Эта проблема связана со следующим местоположением: | ?? at com.xxx.xxx.xxx.inference.ObjectFactory |? Эта проблема связана сследующее расположение: | ?? at com.xxx.xxx.types.ObjectFactory | Два класса имеют одно и то же имя типа XML «objectFactory».Используйте @ XmlType.name и @ XmlType.namespace для назначения им разных имен. |? Эта проблема связана со следующим местоположением: | ?? at 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 (JAXBConjtlt147).sun.xml.bind.v2.runtime.JAXBContextImpl. (JAXBContextImpl.java:303) в com.sun.xml.bind.v2.runtime.JAXBContextImpl. (JAXBContextImpl.java:139) в com.sun.x.v2.runtime.JAXBContextImpl $ JAXBContextBuilder.build (JAXBContextImpl.java:1156) в com.sun.xml.bind.v2.ContextFactory.createContext (ContextFactory.java:165) в com.sun.actv.te.Файл.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.base / java.lang.reflect.Method.invoke (Method.java:566) в javax.xewst.Find.Conte.(продextFinder.java:217) в javax.xml.bind.ContextFinder.newInstance (ContextFinder.java:175) в javax.xml.bind.ContextFinder.find (ContextFinder.java:353) в javax.xml.bind.JAXBContext.newInance(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 возвращает нуль

/ ** * Этот метод используется для добавлениякорневая ссылка на модель.* / public NonElement getTypeInfo (Ref ref) {// TODO: обрабатывать XmlValueList assert! 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);вернуть ноль;// ТОДО: это правильно?} else return getTypeInfo (ref.type, null);}

Не могли бы вы помочь мне с этим вопросом?Дайте мне знать, если вам нужно больше деталей

...