WildFly 8.2.1.Unmarshalling с JAXBContext из другого модуля в WildFly
У меня есть «общий» модуль в модулях/системе/слоях/базе.
Также у меня есть EAR с EJB-JAR внутри В этом EAR у меня есть jboss-deployment-structure.xml с зависимостью от «общего» модуля. Он работает нормально, я могу использовать Классы из этого модуля.
Но, когда я пытаюсь построить JAXBContext
на упаковке внутри этого модуля, и попытаться распаковать некоторые XML в объект, я получаю
неожиданный элемент (URI: «{мое пространство имен}», местные:» {мое местное имя} "). Ожидаемые элементы (нет)
Если я перемещаю эти классы внутри EJB-JAR (все в одном модуле), то unmarshalling работает нормально.
Так что это что-то происходит от разделения модулей.
Я попытался напечатать .toString()
от JAXBContext
объект.
С одним модулем: все аннотированные классы есть.
С двумя модулями: существует только ObjectFactory
класс из указанного пакета.
Если я явно добавляю класс в JAXBContext
, я вижу все классы необходимости от .toString()
, но unmarshalling все еще не wirking. Я получаю нулевой объект.
Что это может быть? Спасибо.
Возможно, посмотрите альтернативный способ создания JAXBContext и укажите TCCL вместо стандартного: https://docs.oracle.com/javaee/5/api/javax/xml/bind/JAXBContext.html# newInstance (java.lang.String,% 20java.lang.ClassLoader) – Franck
@Franck, Да, я попытался использовать другой метод 'newInstance' и указать' ClassLoader'. С обоими загрузчиками классов, из аннотированного класса и с помощью API 'org.jboss.modules.Module'. Не работал. Результат тот же. –
Вы пытались использовать Thread.currentThread(). GetContextClassLoader()? – Franck