GlassFish的JAXB实现

时间:2012-12-24 15:07:38

标签: jaxb glassfish

我在尝试将我的Web应用程序部署到GlassFish 3.1.2时遇到了问题。看起来有JAXB库冲突:我的应用程序使用v.1 JAXB实现,而AFAIK,GlassFish 3.1.2包含自己的v2 JAXB实现。这种重叠是否会导致部署期间失败?如何在这种情况下采取行动?

异常消息:

  

引起:rpt.engine.util.EngineException:javax.xml.bind.JAXBException:无法实例化提供程序com.sun.xml.bind.ContextFactory_1_0_1:javax.xml.bind.JAXBException     - 链接异常:   [java.lang.NoSuchFieldError:theInstance]
    - 链接异常:   [javax.xml.bind.JAXBException     - 链接异常:   [java.lang.NoSuchFieldError:theInstance]]       在javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:160)       在javax.xml.bind.ContextFinder.find(ContextFinder.java:308)       在javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:446)       在javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:409)       在javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:313)

1 个答案:

答案 0 :(得分:1)

这看起来与Glassfish 3.1.2捆绑的JAXB版本有问题,即2.2.5。
您可以尝试手动升级捆绑的JAXB版本:

  • http://jaxb.java.net/下载新版本(完整套餐)

  • 备份文件 /GLASSFISH_HOME/glassfish/lib/jaxb-osgi.jar /GLASSFISH_HOME/glassfish/lib/endorsed/jaxb-api-osgi.jar

  • new-version.zip/lib jaxb-osgi.jar jaxb-api-osgi.jar >到 / GLASSFISH_HOME / glassfish / lib / / GLASSFISH_HOME / glassfish / lib / endorsed /