在JBoss AS 7中找不到JAXB com.sun.xml.internal.bind.v2.ContextFactory类

时间:2016-03-16 16:35:14

标签: java jboss jaxb jboss7.x

在JBoss中使用JAXB时,我在执行代码时遇到异常:

  JAXBContext   jaxbContext   = JAXBContext.newInstance( jaxbElement.getClass().getPackage().getName() );

我得到的例外是:

[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory from [Module "deployment.project.ear.subproject-jboss.jar:main" from Service Module Loader]]
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:156) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:108) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:258) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:412) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:375) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:279) [jboss-jaxb-api_2.2_spec-1.0.4.Final-redhat-3.jar:1.0.4.Final-redhat-3]

看起来JBoss JAXB模块正在加载而不是JDK,这是异常的原因,但我不知道如何解决这个错误?

1 个答案:

答案 0 :(得分:0)

最后我通过将默认上下文工厂更改为eclipse链接上下文工厂来解决它,但不确定为什么它不适用于默认工具。

  JAXBContext jaxbContext = JAXBContextFactory.createContext(  clss.getPackage().getName() , clss.getClass().getClassLoader());

并导入org.eclipse.persistence.jaxb.JAXBContextFactory类。