JAXB在Java 5下工作吗?

使用maven构建我得到“包javax.xml.bind.annotation不存在”

使JAXB与Java 5一起工作需要什么?

您可以从http://jaxb.dev.java.net/下载参考实现(RI)。

我不能告诉你如何使它与maven一起工作 – 如果你问我,比它的价值更麻烦。

Java6包含了一个稍微修改过的RI版本,但RI本身在Java5上运行得很好。

JAXB API捆绑在JDK1.6中,但这些API在JDK <1.6(例如:JDK1.5)中不可用。

我有一个用JDK1.6编写的Java到XML代码,一旦我切换到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不包含JAXB API,因此我应用了以下修复:我在类路径中使用了JDK1.5和以下两个JARS:jaxb-api-2.0.jar和jaxb-impl-2.0.jar,错误得到了解决。

我希望这有帮助。 另一个参考: http : //www.mkyong.com/java/jaxb-hello-world-example/

使用以下版本将适用于JDK5:

    com.sun.xml.bind jaxb-impl 2.2.4-1   javax.xml.bind jaxb-api 2.2.4   javax.xml.soap saaj-api 1.3.3  

似乎有许多版本和不同的路径从maven存储库获取JAXB。

我对正确工件的最佳猜测是javax.xml.bind: jaxb-api:2.2

  javax.xml.bind jaxb-api 2.2 compile  

Jaxb应该使用Java 5,但似乎有更多人遇到问题。 可能是缺少一些jar子吗?

查看此论坛post。