找不到提供程序oracle.j2ee.ws.client.ServiceFactoryImpl

时间:2010-06-18 21:32:29

标签: java oracle service classloader

我正在编写一个调用Oracle Web服务的应用程序。我提供了Web服务客户端代码。

此应用程序使用URLClassLoader的自定义子类在运行时加载jar。从我的本地计算机运行单元测试工作正常,但是当我在服务器上部署应用程序并运行它时,我收到以下错误。其他类/ jar通过自定义ClassLoader正常加载。

不确定为什么会这样?也许FactoryFinder使用单独的ClassLoader实例?任何帮助表示赞赏。谢谢!

    javax.xml.rpc.ServiceException: Provider oracle.j2ee.ws.client.ServiceFactoryImpl not found
      at javax.xml.rpc.FactoryFinder.newInstance(FactoryFinder.java:44)
      at javax.xml.rpc.FactoryFinder.find(FactoryFinder.java:137)
      at javax.xml.rpc.ServiceFactory.newInstance(ServiceFactory.java:69)
      at com.mycomp.myapp.oracle.client.TSClient.<init>(TSClient.java:34)
      at com.mycomp.myapp.oracle.LaborHours.update(LaborHours.java:92)
      at com.mycomp.myapp.oracle.OracleConnection.updateMetrics(OracleConnection.java:73)
      at com.mycomp.myapp.Project.crawl(Project.java:150)
      at com.mycomp.myapp.Main.main(Main.java:302)

1 个答案:

答案 0 :(得分:0)

这是我提出的结论。

ServiceFactory使用它自己的类加载机制(显然与我的自定义类加载器不同)。

我不得不使用这个hack http://forums.sun.com/thread.jspa?threadID=300557将jar添加到系统类加载器的类路径中。