找到當前項目中包含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不管!!!