隨筆 - 37  文章 - 29  trackbacks - 0


          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          最新評論

          閱讀排行榜

          評論排行榜

          環境:WebSphere 6.l
          JRE: WebSphere 6.1 JRE
          項目需求:用SUN JDK6自帶的JAX-WS創建Web Service。 其中Server端的Web Service接口已發布,我這邊的項目直接根據對方提供的WSDL創建Client。
          碰到的問題:
          當調用javax.xml.ws.Service的構造方法 Service(URL url, QName qName)的時候,報錯如下:

          [3/14/09 14:51:53:750 CST] 0000002c SystemErr     R Caused by: java.lang.Throwable: java.lang.LinkageError: You are loading old SAAJ from jar:file:/C:/Program%20Files/IBM/SDP70/runtimes/base_v61/lib/j2ee.jar!/javax/xml/soap/MessageFactory.class
           at com.sun.xml.ws.api.SOAPVersion.<init>(SOAPVersion.java:184)
           at com.sun.xml.ws.api.SOAPVersion.<clinit>(SOAPVersion.java:83)
           at java.lang.J9VMInternals.initializeImpl(Native Method)
           at java.lang.J9VMInternals.initialize(J9VMInternals.java:177)
           at com.sun.xml.ws.api.BindingID.<clinit>(BindingID.java:318)
           ...(以下省略300字)
          Caused by: java.lang.Throwable: java.lang.NoSuchMethodError: javax/xml/soap/MessageFactory.newInstance(Ljava/lang/String;)Ljavax/xml/soap/MessageFactory;
           at com.sun.xml.ws.api.SOAPVersion.<init>(SOAPVersion.java:178)
           ... 21 more


          也就是說,程序先去讀取了WebSphere 6.1的j2ee.jar包里的相關類,而沒去讀取我們真正要用的兩個SAAJ jar包:saaj-api.jar和saaj-impl.jar. 結果就出錯了。

          IBM上找到的原因及解決辦法:

          如何在WebSphere中解決jar包沖突

           

          主要就是把Classloader mode從默認的Parent_First改成Parent_Last,讓程序先讀自己的class文件以及jar包。
          我就照樣畫葫蘆設置了。順便說一下,關聯共享庫到應用程序,我無論如何都做不成功。關閉Application,進入Application,關聯共享庫,關聯好了,保存成功,退到外面,再進去,共享庫又沒關聯上。設置Classloader mode的時候也遇到了這樣的問題,但最終還是迫使其讓我保存了。共享庫就不管理,反正無所謂,只要加載順序變了就成。
          但事實上,我的擔心成為了事實:程序啟動失敗,雖然起來了,但只跑了一小部分代碼,后面的服務都沒起來。想想也是,程序那么大,用到的jar包那么多,改了Classloader mode,一切全都亂套了...

          之后,查看Console-->TroubleShooting-->Class Loader View,發現系統最開始加載的是WebSphere下的ext目錄下的jar包

          所以就投機取巧,把我要用的兩個saaj包放到了ext目錄下,重啟,程序運行成功
          當然,這不是一個好的解決辦法,阿三那里能不能通得過還是個問題



          posted on 2009-03-14 20:26 EvanLiu 閱讀(6324) 評論(1)  編輯  收藏 所屬分類: Java基礎

          FeedBack:
          # re: WebSphere下LinkageError解決辦法 2014-07-15 11:26 李勇強
          學習中。。  回復  更多評論
            
          主站蜘蛛池模板: 嘉峪关市| 桃园县| 重庆市| 临沧市| 海安县| 合阳县| 浑源县| 乌拉特后旗| 双桥区| 景泰县| 峨眉山市| 三原县| 榕江县| 连州市| 河南省| 静乐县| 苍梧县| 乐清市| 囊谦县| 沁源县| 兴仁县| 军事| 固始县| 应用必备| 兴国县| 高陵县| SHOW| 安庆市| 澄迈县| 林芝县| 乐亭县| 五河县| 灵丘县| 鹤岗市| 洞头县| 昭苏县| 清镇市| 丰城市| 建湖县| 永吉县| 遵义市|