java.lang.ClassNotFoundException: com.sun.xml.ws.spi.ProviderImpl解决办法

问题现象:

  这种很可能出现在独立一个简单示例项目中可以用,但是在把webService模块加入系统后,报出这类错误。

Exception in thread "main" javax.xml.ws.WebServiceException: Provider com.sun.xml.ws.spi.ProviderImpl not found
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:38)
at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:133)
at javax.xml.ws.spi.Provider.provider(Provider.java:76)
at javax.xml.ws.Endpoint.publish(Endpoint.java:156)
at com.test.webservice.MyService.main(MyService.java:7)
Caused by: java.lang.ClassNotFoundException: com.sun.xml.ws.spi.ProviderImpl
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:34)
... 4 more

 

可能原因及解决:

  1.版本需要:jre版本1.6(均含),jave EE5以上;升级

  2.可能是应用程序的lib中加入了jaxb-impl.jar,而没有引入jaxws-rt的jar,或者仔细检查一下有无这块的引用不完整情况。关于JAX-WS加载顺序可参考《JAX-WS Provider (JAXB) 的加载顺序》;补充jar

  3.重新加载javeEE:在build path 中 remove 掉 Java EE * libraris (*是版本数字),然后add libraris--myeclipse libraris -- next 选对应java EE 版本加入; 

posted @ 2017-12-05 10:40  我要这昵称有何用  阅读(1607)  评论(0编辑  收藏  举报