当我将应用程序作为独立的 Java 程序运行时,它运行良好。当我将它作为小程序运行时,它会抛出 JAXBException 并带有以下堆栈跟踪信息。
javax.xml.bind.JAXBException: jaxb.properties in package com/test/package does not contain the javax.xml.bind.context.factory property.
at javax.xml.bind.ContextFinder.find(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
当我添加 jaxb.properties 时,出现以下错误 -
javax.xml.bind.JAXBException
- with linked exception:
[java.lang.NoSuchMethodException: com.sun.xml.internal.ws.developer.JAXBContextFactory.createContext([Ljava.lang.Class;, java.util.Map)]
at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
at javax.xml.bind.ContextFinder.find(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
我在类路径中添加了以下 jars -
- jaxws-rt-2.2.1
- jsr311-api-1.1.1
- jersey-core-1.2
- jersey-client-1.2
导致此错误的原因。我是否缺少任何依赖项。
编辑: 我在浏览器和开发环境中都使用 Java 7 u 59。
最佳答案
Jersey 1.2 版似乎已经过时。我认为 Jersey 2.21 是当前版本。此外,您应该检查您正在使用哪个 JDK/JRE 来运行您的程序。小程序是否在与您将其作为应用程序启动时相同的环境/Java 版本中运行?
关于java - 关于创建 JAXB 上下文的 JAXBException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32268883/