0

我在尝试将我的 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)

4

1 回答 1

2

这看起来像是与 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

  • 将文件jaxb-osgi.jarjaxb-api-osgi.jarnew-version.zip/lib 提取/GLASSFISH_HOME/glassfish/lib//GLASSFISH_HOME/glassfish/lib/endorsed/

于 2012-12-25T13:16:18.030 回答