`

com.sun .xml.bind.v2.ContextFactory 类找不到的解决

 
阅读更多

com.sun .xml.bind.v2.ContextFactory 类找不到的解决

 (2013-08-30 16:06:23)
标签: 

contextfactory

 

找不到类

 

cxf

 

webservice

分类: Java
在做项目过程中,使用apache-cxf客户端方式调用接口访问服务器时,报javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory not found 错误,异常堆栈信息如下:

Caused by: javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory not found
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:151)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:299)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
at org.apache.cxf.wsdl.JAXBExtensionHelper.createJAXBContext(JAXBExtensionHelper.java:196)
at org.apache.cxf.wsdl.JAXBExtensionHelper.getJAXBContext(JAXBExtensionHelper.java:183)
... 65 more
Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:116)
... 70 more
 
    一开始以为是jaxb包的问题,但是项目中存在该类。
    在通过搜索引擎查找时,找到【DK 版本 JAXB版本不一致 引发 java.lang.ClassNotFoundException:com.sun .xml.bind.v2.ContextFactory(附件1),使用该方法,问题仍未解决。
    最后检查项目类路径发现,在启动类路径中, Java EE 5 Library 在 JRE System Library[jdk1.6.0_25] 之前, 调整顺序,将JRE放在前面解决。
    有问题的类路径顺序(eclipse:Run->Run Configrations...):
   (这也是我查找的,我特意转载过来的,也可以先把 Jave EE 5 library 先remove 然后 在add 也是可以的)

   问题解决之后的类路径顺序(使用右边的up/down 按钮调整):


参考文档:
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics