Подтвердить что ты не робот

Как использовать файл jaxb.index?

Я получаю

javax.xml.bind.JAXBException: "org.example.mypackage" doesnt contain ObjectFactory.class or jaxb.index

при попытке создать JAXBContext с помощью JAXBContext.newInstance(String contextPath). Я предполагаю, что существует "обычный" способ создания и поддержки файла jaxb.index.

4b9b3361

Ответ 1

Файл jaxb.index представляет собой список классов в содержащем пакете с аннотациями JAXB.

Каждая строка в файле представляет собой простое имя класса, а не его полное имя.

Вы можете прочитать больше здесь: http://cmaki.blogspot.com/2007/09/annotated-jaxb-classes.html

Ответ 2

Попробуйте этот путь,

JAXBContext context = JAXBContext.newInstance(new Class[] {your.package.Test.class});

Кроме того, убедитесь, что вы добавили @XmlRootElement в класс Test.

@XmlRootElement
class Test {
  private String ...;
  private int ......;
}

также убедитесь, что вы используете java 1.5

Ответ 3

Убедитесь, что вы передаете правильный класс методу. Предполагая, что ваш корневой элемент XML является XMLRoot, вы бы назвали его следующим:

JAXBContext context = JAXBContext.newInstance(XMLRoot.class);

Также убедитесь, что вы используете правильную версию компилятора JAXB (xjc) для версии Java, в которой вы работаете. Созданные JAXB классы из старого компилятора не будут работать должным образом с Java 6 JAXB, что дает ту же ошибку.