javax.xml.ws.WebServiceException:找不到提供者com.sun.xml.internal.ws.spi.ProviderImpl

时间:2013-03-03 09:52:05

标签: oracle java

我正在尝试在jdk1.5上运行一个webservice客户端并给我以下错误:

javax.xml.ws.WebServiceException: Provider com.sun.xml.internal.ws.spi.ProviderImpl not found

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:6)

确保在您的路径上还可以找到包含类com.sun.xml.internal.ws.spi.ProviderImpl的jar。我查看了可能需要的jar,here你可以看到包含给定类的jar。他们中的任何一个都可以帮到你。

答案 1 :(得分:2)

我不知道为什么它找不到合适的类的确切原因但我认为它在 Oracle数据库中查找(或特征)Java类加载器时遇到了问题资源。

我从java.net加载了JAX-WS引用实现,其中包含与SYS用户的所有依赖关系(具有公共访问权限和公共同义词)。但是从服务WSDL生成的类我加载到用户SCOTT模式。由于某种原因,当SCOTT运行使用服务的过程时,javax.xml.ws.spi.FactoryFinder确实在META-INF/services/javax.xml.ws.spi.Provider资源(具有正确的值com.sun.xml.ws.spi.ProviderImpl)中查找实现名称,但无法找到此资源,因此尝试从硬编码的类名(com.sun.xml.internal.ws.spi.ProviderImpl)加载提供程序并失败。

我的解决方案是将所有JAX-WS RI和依赖jar中的所有META-INF/services/*文件加载到SCOTT模式。替代方法可以是将所有JAX-WS RI,依赖最终程序加载到同一模式。