隨筆 - 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 閱讀(6326) 評論(1)  編輯  收藏 所屬分類: Java基礎

          FeedBack:
          # re: WebSphere下LinkageError解決辦法 2014-07-15 11:26 李勇強
          學習中。。  回復  更多評論
            
          主站蜘蛛池模板: 武宣县| 抚宁县| 建德市| 宜章县| 曲水县| 安多县| 四川省| 岗巴县| 白玉县| 汉源县| 汝州市| 五大连池市| 璧山县| 凤台县| 沿河| 旌德县| 柘荣县| 汾阳市| 自贡市| 长丰县| 册亨县| 兴和县| 遂川县| 紫阳县| 科技| 浑源县| 黄梅县| 萍乡市| 鹤峰县| 平远县| 仲巴县| 奎屯市| 陇南市| 海南省| 玉门市| 安岳县| 顺昌县| 南通市| 乌鲁木齐县| 额敏县| 宜宾市|