java.lang.ClassCastException : com. sun.xml.bind.v2.runtime.JAXBContextImpl 无法转换为 com.sun.xml.bind.api.JAXBRIContext

标签 java web-services jax-ws

我创建了一个 jaxws 网络服务。我完全遵循了 url

服务完美无误。但是服务器在请求命中时出现错误。

SEVERE: caught throwable
java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.bind.api.JAXBRIContext
    at com.sun.xml.ws.db.glassfish.JAXBRIContextFactory.newContext(JAXBRIContextFactory.java:74)
    at com.sun.xml.ws.spi.db.BindingContextFactory.create(BindingContextFactory.java:149)
    at com.sun.xml.ws.message.jaxb.JAXBMessage.create(JAXBMessage.java:160)
    at com.sun.xml.ws.fault.SOAPFaultBuilder.createSOAP11Fault(SOAPFaultBuilder.java:433)
    at com.sun.xml.ws.fault.SOAPFaultBuilder.createSOAPFaultMessage(SOAPFaultBuilder.java:210)

我检查了 stackoverflow 和许多其他网站都说 jar 文件冲突。
我使用 java-6-openjdk。
下面是我在 jetty 服务器中的 jar 文件列表。

gmbal-api-only.jar
ha-api.jar
jaxb-core.jar
jaxb-impl.jar
jaxws-rt.jar
management-api.jar
policy-2.3.1.jar
stax-ex.jar
streambuffer-1.5.1.jar

因为上面的 jar 不工作我试过
here
下载 JAX-WS RI 发行版。

但是那些 jar 给出了同样的错误。

最佳答案

我也遇到过同样的异常,用谷歌搜索确认是因为类路径/jar 问题。

我使用 Java 6.0 作为构建和运行时环境,我的项目设置有 jaxb-api.jar 和 jaxb-impl.jar我只是从类路径中删除了这两个 jar,它就可以工作了。

就像我们拥有 Java 6.0 一样,我们不需要使用明确的 JAX 绑定(bind) jar。它默认随 Java 6.0 一起提供。

关于java.lang.ClassCastException : com. sun.xml.bind.v2.runtime.JAXBContextImpl 无法转换为 com.sun.xml.bind.api.JAXBRIContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17114090/

相关文章:

java - Android如何生成具有实际质量的大尺寸图像(即3200 x 3000像素)

java - 在 ListView 中显示 JSON 数据仅显示 Array 中的第一个元素

java强制包声明

java - 关于 WSDL 的 Rest 与 SOAP

web-services - Web 框架在读取正文之前是否检查授权 header ?

soap - JAX-WS xsi :type attributes missing

java - Mac 上没有此类文件或目录错误

json - Moodle:如何将Web服务消息从xml更改为json

java - JAX-WS @DefaultValue 注释被忽略

java - 如何在 Glassfish 下运行的 JAX-WS Web 服务上查看 WSDL?