Работает ли JAXB под Java 5? - PullRequest
9 голосов
/ 24 мая 2010

Сборка с maven Я получаю «пакет javax.xml.bind.annotation не существует»

Что мне нужно, чтобы JAXB работал с Java 5?

Ответы [ 5 ]

5 голосов
/ 06 сентября 2012

API JAXB включены в JDK1.6, но они не доступны в JDK <1.6 (например: JDK1.5). </p>

У меня есть код Java to XML, написанный на JDK1.6, и однажды япереключившись на JDK1.5, я получил следующую ошибку:

*Exception in thread "main" java.lang.RuntimeException: javax.xml.bind.JAXBException
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory]
...
Caused by: javax.xml.bind.JAXBException
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory]*
...

JDK1.5 не содержит API-интерфейсы JAXB, и поэтому я применил следующее исправление: я использовал JDK1.5 и следующие два JARS:api-2.0.jar и jaxb-impl-2.0.jar в моем пути к классам, и ошибка была устранена.

Надеюсь, это поможет.Другая ссылка: http://www.mkyong.com/java/jaxb-hello-world-example/

4 голосов
/ 24 мая 2010

Вы можете загрузить эталонную реализацию (RI) с http://jaxb.dev.java.net/.

Я не могу посоветовать вам, как заставить его работать с maven - больше проблем, чем стоит, если вы спроситеme.

Java6 включала слегка измененную версию RI, но сам RI прекрасно работает с Java5.

2 голосов
/ 30 октября 2013

Использование следующих версий будет работать с JDK5:

      <!-- 
              versions after 2.2.4 requires jdk6, please refer 
             to https://java.net/jira/browse/JAXB-890 
       -->

    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.2.4-1</version>
    </dependency>

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.2.4</version>
    </dependency>

    <dependency>
        <groupId>javax.xml.soap</groupId>
        <artifactId>saaj-api</artifactId>
        <version>1.3.3</version>
    </dependency>
2 голосов
/ 25 мая 2010

Кажется, есть много версий и разных путей получения JAXB из репозитория maven.

Мое лучшее предположение о правильном артефакте: javax.xml.bind: jaxb-api:2.2

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.2</version>
    <scope>compile</scope>
</dependency>
1 голос
/ 24 мая 2010

Jaxb должен работать с Java 5, но, похоже, с ним сталкиваются другие люди. Может быть, не хватает некоторых банок?

Проверьте это сообщение на форуме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...