隨筆 - 37  文章 - 29  trackbacks - 0


          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          最新評論

          閱讀排行榜

          評論排行榜

          環(huán)境:WebSphere 6.l
          JRE: WebSphere 6.1 JRE
          項目需求:用SUN JDK6自帶的JAX-WS創(chuàng)建Web Service。 其中Server端的Web Service接口已發(fā)布,我這邊的項目直接根據(jù)對方提供的WSDL創(chuàng)建Client。
          碰到的問題:
          當調(diào)用javax.xml.ws.Service的構(gòu)造方法 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包里的相關(guān)類,而沒去讀取我們真正要用的兩個SAAJ jar包:saaj-api.jar和saaj-impl.jar. 結(jié)果就出錯了。

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

          如何在WebSphere中解決jar包沖突

           

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

          之后,查看Console-->TroubleShooting-->Class Loader View,發(fā)現(xiàn)系統(tǒng)最開始加載的是WebSphere下的ext目錄下的jar包

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



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

          FeedBack:
          # re: WebSphere下LinkageError解決辦法 2014-07-15 11:26 李勇強
          學習中。。  回復  更多評論
            
          主站蜘蛛池模板: 进贤县| 辽源市| 五指山市| 新巴尔虎右旗| 夏河县| 昭苏县| 兴国县| 交口县| 阿克陶县| 九龙县| 旅游| 铅山县| 团风县| 会泽县| 定日县| 米泉市| 定结县| 建水县| 囊谦县| 惠水县| 象州县| 安溪县| 宝山区| 若羌县| 涪陵区| 静安区| 正定县| 汉中市| 许昌县| 永昌县| 遂平县| 麻栗坡县| 新津县| 彰化市| 长泰县| 古浪县| 深泽县| 滨海县| 安丘市| 库尔勒市| 巴塘县|