2010-06-18 154 views
0

我在寫一個調用Oracle Web服務的應用程序。 Web服務客戶端代碼是由我提供的。提供程序oracle.j2ee.ws.client.ServiceFactoryImpl找不到

此應用程序使用URLClassLoader的自定義子類在運行時加載罐子。從我的本地機器運行單元測試工作正常,但是當我在服務器上部署應用程序並運行它時,出現以下錯誤。其他類/ 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) 

回答

0

這是我想出的結論。

ServiceFactory使用它自己的類加載機制(這顯然是一個不同於我的自定義類加載器的實例)。

我不得不使用這個hack http://forums.sun.com/thread.jspa?threadID=300557來將jar添加到系統類加載器的類路徑中。

相關問題