Где включить файл jaxb.properties? - PullRequest
17 голосов
/ 03 декабря 2010

У меня есть веб-сервис REST (Джерси), который использует некоторые объекты данных, которые маршалируются / не маршалируются в / из XML. Объекты данных находятся в отдельном проекте / фляге, от которой зависит война веб-сервисов.

Я использую MOXy в качестве своей реализации JAXB, так как я развертываю на Glassfish, и это уже включено. Я знаю, что мне нужен файл jaxb.properties для установки реализации JAXB на MOXy с этой записью:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

Вопрос в том, должен ли файл jaxb.properties быть включен в jar объекта данных или в войну веб-службы, или в то и другое?

Ответы [ 2 ]

22 голосов
/ 13 октября 2015

Если вы не хотите или не можете использовать jaxb.properties (у вас много пакетов, модель находится во внешнем банке, вы хотите только java и никаких файлов конфигурации ...), вы можете указать напрямуюJaxbContextFactory:

Не создавайте контекст, используя:

JAXBContext jaxbContext = JAXBContext.newInstance(new Class[]{Person.class, ObjectFactory.class}, properties);

Но вместо этого укажите фабрику для использования:

JAXBContext jaxbContext = JAXBContextFactory.createContext(new Class[]{Person.class, ObjectFactory.class}, properties);

, где фабрика:

import org.eclipse.persistence.jaxb.JAXBContextFactory;

Это то же самое, но оно явно указано в коде Java, а не явно в файле конфигурации.

12 голосов
/ 03 декабря 2010

Вы упаковываете файл jaxb.properties вместе с вашими модельными классами.GlassFish пока не включает комплект MOXy, но вы можете легко добавить его.Проверьте мой блог для получения дополнительной информации:

...