Объявления JAXB package-info.java игнорируются в отдельном модуле maven.

Я использую package-info.java указать @XmlAccessorType(XmlAccessType.NONE) и некоторые XML-адаптеры Java с использованием @XmlJavaTypeAdapters, Объекты модели (с аннотациями JAXB) помещаются в отдельный модуль maven, совместно используемый другими модулями. Конфигурация в package-info.java не обнаружено, если объекты модели находятся в отдельном модуле maven. Если я перемещаю в целях тестирования объекты модели в тот же модуль maven, все в порядке. Я думаю, что отдельный модуль maven можно считать эквивалентным сторонним lib из JAXBContext точка зрения. Я использую эталонную реализацию JDK1.7 JAXB. Есть идеи, как может отличаться конфигурация?

1 ответ

Недавно я столкнулся с этой проблемой, и реальная проблема (с Java 8, т.е. без задействованных модулей Java) заключалась в том, что у меня в пути к классам были два файла *.jar, которые оба содержали один и тот же пакет - в одном JAR был package-info.class с аннотациями JAXB, а в другом - не было. В этом случае я предполагаю, что обнаружение файла package-info.class зависит от порядка пути к классам (который очень хрупкий и только полудетерминированный).

Я также столкнулся с этой проблемой, в моем случае квалифицированное / неквалифицированное свойство из package-info.java было проигнорировано. Мне удалось найти два способа обойти это:

  • как писал Павла, скопируйте все классы JAXB с package-info.java локально
  • включить модуль как зависимость с областью компиляции (что дает аналогичный результат, что классы находятся в модуле. В моем случае я создал отдельный jar lib с классами JAXB)

Я также заметил, что он не работает только в случае создания WebServices (создание объекта и отправка в WS отлично работает в разных модулях).

Я использую Jbossas7.1.1 и CXF 2.4.6. Во время регистрации сервис Jboss создал wsdl из JAXB (в моем случае путь /opt/jboss/jboss-as-7.1.1.Final/standalone/data/wsdl/module.war/SubmitMessage.wsdl). В локальной настройке файл генерируется правильно.

Есть идеи, почему создание WS ведет себя так?

Другие вопросы по тегам