问题现象:
这种很可能出现在独立一个简单示例项目中可以用,但是在把webService模块加入系统后,报出这类错误。
Exception in thread "main" javax.xml.ws.WebServiceException: Provider com.sun.xml.ws.spi.ProviderImpl not foundat 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.ProviderImplat 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加载顺序可参考《》;补充jar
3.重新加载javeEE:在build path 中 remove 掉 Java EE * libraris (*是版本数字),然后add libraris--myeclipse libraris -- next 选对应java EE 版本加入;