JAXBContext兼容性问题

时间:2014-12-16 15:59:31

标签: java jaxb

我正在将我们的团队从JAXB 1.x迁移到JAXB 2.1,这是JAVA1.6(rt.jar)的一部分。 一切都在游荡,直到它在运行时开始抱怨。

以下是导致问题的代码行。

String jaxbPackageName = "com.acme.retail.fuel.ifp";
context = JAXBContext.newInstance(jaxbPackageName, new JAXBClassLoader());

我已从项目及其构建路径中删除了所有JAXB 1.x库和资源。但问题仍然存在。以下是异常消息

SEVERE: JAXBContext creation failed for context path com.acme.retail.fuel.ifp
Throwable occurred: javax.xml.bind.JAXBException: Provider com.sun.xml.bind.ContextFactory_1_0_1 not found
 - with linked exception:
[java.lang.ClassNotFoundException]
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:158)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:260)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:383)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:348)
    at com.acme.sureview.fuel.ifsf.application.IFPTranslator.<init>(IFPTranslator.java:167)

1 个答案:

答案 0 :(得分:3)

弄清楚我的问题。因此,似乎还需要更改ContextFactory设置。 以前的价值是:

javax.xml.bind.context.factory=com.sun.xml.bind.ContextFactory_1_0_1

我把它改为:

javax.xml.bind.context.factory=com.sun.xml.internal.bind.v2.ContextFactory

这就照顾好了。