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

我创建了一个jaxws Web服务。 我完全关注了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
管理-api.jar文件
政策2.3.1.jar
STAX-ex.jar
streambuffer-1.5.1.jar

由于上面的jar子不起作用,我尝试过
去这里
下载JAX-WS RI发行版。

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

我也遇到了同样的exception和一点点谷歌搜索它确认它是因为classpath / jar问题。

我使用Java 6.0作为构建和运行时环境,我的项目设置使用jaxb-api.jar和jaxb-impl.jar我只是从classpath中删除了这两个jar子就行了。

好像我们有Java 6.0,我们不需要使用明确的JAX绑定jar。 它默认带有Java 6.0。

检查此线程: 用于Web服务的Web客户端 。 我认为的主要问题是你有几个版本不同的jaxb jar。 例如,我认为jaxb已经是jaxws-rt.jar的一部分,这意味着你不需要jaxb-core.jar和jaxb-impl.jar。