Вам всегда нужен класс ObjectFactory при использовании JAXB?
Вам всегда нужен класс ObjectFactory при использовании JAXB?
Без этого я получаю это исключение:
javax.xml.bind.JAXBException: "com.abc" не содержит ObjectFactory.class или jaxb.index
Я считаю, что ObjectFactory может быть излишним. Но, учитывая это исключение, я предполагаю, что оно тебе нужно... но не уверен, зачем?
2 ответа
Вы получаете это исключение при использовании JAXBContext.newInstance(String)
фабричный метод, где вы передаете имя пакета в качестве аргумента. Это требует ObjectFactory
чтобы быть там, в противном случае JAXB не знает, какие классы обрабатывать.
Если у вас нет ObjectFactory
, вам нужно JAXBContext.newInstance(Class...)
вместо этого, передав явный список аннотированных классов для добавления в контекст.
Вместо ObjectFactory вы можете включить файл jaxb.index, который является текстовым файлом, который содержит разделенный новой строкой список классов Java.
Пример использования файла jaxb.index смотрите:
Я использовал Spring, и мне просто нужно было изменить
Jaxb2Marshaller mlr = new Jaxb2Marshaller();
mlr.setContextPaths("","");
в
Jaxb2Marshaller mlr = new Jaxb2Marshaller();
mlr.setPackagesToScan("","");