JAXB - исключение маршалинга javax.xml.stream.FactoryConfigurationError, работающее с Java 5 - PullRequest
3 голосов
/ 21 февраля 2012

Я пытаюсь выполнить простое маршалинг JAXB в своем тестовом классе JUit, и я использую Java 5. Я получаю эту ошибку при выполнении теста.

javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.XMLOutputFactoryBase не найден

Я добавил следующие зависимости в мой pom.

     <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-xjc</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>javax.xml</groupId>
        <artifactId>jsr173</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
       <groupId>javax.activation</groupId>
       <artifactId>activation</artifactId>
       <version>1.1</version>
    </dependency>

любая помощь по этому вопросу высоко ценится.

1 Ответ

3 голосов
/ 21 февраля 2012

Из приведенного выше списка зависимостей похоже, что вы используете jsr173 - API-интерфейс для XML. Указанная вами зависимость просто предоставляет API. Вам нужно добавить провайдера, который реализует это. Поставщик по умолчанию, который он ищет, если он не находит ни одного, является реализацией bea. Отсюда и ошибка.

Вот обсуждение по этому вопросу. Вы можете добавить реализацию bea или ее альтернативу, такую ​​как woodstox .

...