Вам всегда нужен класс ObjectFactory при использовании JAXB? - PullRequest
18 голосов
/ 19 апреля 2010

Вам всегда нужен класс ObjectFactory при использовании JAXB?

Без этого я получаю это исключение:

javax.xml.bind.JAXBException: "Com.a.b.c" не содержит ObjectFactory.class или jaxb.index

I собираются Объектная фабрика может быть излишней. Но, учитывая это исключение, я предполагаю, что оно вам нужно ... но не уверен, почему?

Ответы [ 3 ]

22 голосов
/ 19 апреля 2010

Вы получаете это исключение, когда используете фабричный метод JAXBContext.newInstance(String), в котором вы передаете имя пакета в качестве аргумента. Для этого требуется ObjectFactory, иначе JAXB не знает, какие классы обрабатывать.

Если у вас нет ObjectFactory, вам нужно вместо этого JAXBContext.newInstance(Class...), передав явный список аннотированных классов для добавления в контекст.

11 голосов
/ 06 июля 2010

Вместо ObjectFactory вы можете включить файл jaxb.index, который представляет собой текстовый файл, содержащий список строк Java с разделением новой строки.

Пример использования файла jaxb.index см .:

1 голос
/ 29 апреля 2019

Я использовал Spring , и мне просто нужно было изменить

Jaxb2Marshaller mlr = new Jaxb2Marshaller();
mlr.setContextPaths("","");

до

Jaxb2Marshaller mlr = new Jaxb2Marshaller();
mlr.setPackagesToScan("","");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...