webservice接口在weblgic服務器上無法調用

找到當前項目中包含QName的jar包,將class刪除,javax.xml.namespace.QName.class刪除。
ctrl+Shift+T搜一下,可以看到一些含有javax.xml.namespace.QName.class的jar包,將該class刪除即可,如jaxrpc.jar中就有。

 

當啓動程序的時候,運行到調用webservice接口的時候,就出現問題了,具體錯誤是:

 

 

Error processing remote invocation: java.lang.LinkageError: loader constraint violation: loader (instance of weblogic/utils/classloaders/Change

AwareClassLoader) previously initiated loading for a different type with name "javax/xml/namespace/QName"

 

這是由於調用webservice接口時,引用了QName方法引起的,而且,在weblogic下,存在許多包含QName的jar包,所以就引起了調用QName方法失敗。

從網上找了很多方法,有一種是更改webservice接口部署的:http://forums.oracle.com/forums/thread.jspa?threadID=876154

這種方法的缺點是,如果不是部署自己開發的webservice接口,那麼,就會存在溝通的問題。

 

第二種方法:這種方法比較強悍,屬於暴力的方法,但確實有效,也是從網上找的思路,但是,具體問題要具體分析,剛開始我就煩了這個錯誤,纔會失敗,耽誤了幾天後,就解決了,這種方法是,直接刪除你項目下jar包中包含QName的方法,方法是,用rar打開jar包,直接用rar刪除jar包中包含QName的文件。

 

切忌,我這裏的QName的路徑是javax/xml/namespace/QName,所以,我只要刪除相同路徑的QName就ok了!!其他包含QName的jar不管!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章