使用cxf 关于JAXB2.1和JDK1.6/6.0版本不一致的有关问题 -已解决

使用cxf 关于JAXB2.1和JDK1.6/6.0版本不一致的问题 --已解决

 这段时间因为要做毕业设计,涉及到要使用WebService完成系统的集成,于是就看了下现在流行的框架,最终选择了CXF框架,因为它能和Spring很好的集成。然后看了 http://www.iteye.com/topic/305642 这位仁兄的文章,着手开始实现第一个简单的程序,然而,在完全按照视频要求完成后,控制台总是报错,说什么

 

nested exception is java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/)

 

按字面意思就是现在使用的是JAXB 2.0的API,但是需要2.1的API。看了要求去看的网页,然后又在网上找寻了很长时间,问题终于被解决。

 如果看的懂E文的话,可以去看看这篇文章

http://nwangwei.spaces.live.com/Blog/cns!3A3D02B743E87051!240.entry

 

只要按照第一种方法就行了

One way to fix this is to copy jaxws-api.jar and jaxb-api.jar into JRE endorsed directory, which is $JAVA_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed)

 

首先在JDK的lib目录下新建endorsed目录(如果存在就不需要新建了)

然后把jaxws-api.jar 和jaxb-api.jar 拷贝endorsed目录下,问题解决。

1 楼 jnn 2009-02-23  
NOTE

CXF 2.0.X 使用的 jaxb , jaxws 2.0 API
CXF 2.1.x 使用的 jaxb , jaxws 2.1 API
2 楼 cometlj 2009-02-23  
jnn 写道
NOTE

CXF 2.0.X 使用的 jaxb , jaxws 2.0 API
CXF 2.1.x 使用的 jaxb , jaxws 2.1 API

恩,谢谢 jnn 的提醒,我使用的cxf是2.1.4 的,所以才会有这样的错误。