Объявления 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 ведет себя так?