CXF 與 websphere 不兼容的處理方式

2天之前,我真的是一點都沒有接觸過webservice程序,直接造成了昨天的悲劇

 

昨天,由於項目中用到了CXF發佈webservice應用,客戶最終要部署要was7上面.

使用的CXF版本是2.4.1,在tomcat下測試都好好的,發佈到was7上面就開始報錯:

 

 java.lang.IncompatibleClassChangeError: org.apache.neethi.AssertionBuilderFactory

 java.lang.IncompatibleClassChangeError: org.apache.neethi.AssertionBuilderFactory

 

上網一查,說CXF與was7不兼容,要改....先冒一身冷汗,於是按照很多人網上所說的方法,改包,刪包,往endorsed目錄下塞包,修改was上面的虛擬機類加載機制,都試了個試,結果一個都沒用....

 

期間由於更改類加載順序,還引起了啓動servlet根本無法被加載的問題

 

整個下午一直暈到死...

 

到了晚上,上面下了死命令,今天必須把兼容性搞定...實在沒辦法,根據有人給出的鏈接,到官網上查了一下,was7專門針對axis2與cxf的不兼容給出瞭解決方案.並且給出了一個測試war(ear)包,於是頂着3g上網卡超流量的風險,下載了30M的cxf測試ear包,發佈到was7上,居然人家就可以發佈成功!而我自己寫的helloworld按照它官網給出的解決方案居然發佈失敗..

 

於是怒了,看了下人家的版本.是cxf2.1.3的,我用的是2.4.1的,不管了,改...

 

除了更換了CXF版本外,還在打出的war包的manifest.mf文件中增加了一行:

 

 

Manifest-Version: 1.0
DisableIBMJAXWSEngine: true
Class-Path: 
 

 

最後晚上10點半發佈測試,成功搞定...Oh,My God, 趕緊打的走人,晚上還要趕回另外一個地點查找賬務問題...悲催啊

 

 

IBM 官方鏈接爲:

http://www.ibm.com/developerworks/websphere/library/techarticles/1001_thaker/1001_thaker.html

 

其中例子ear包就不在此上傳了,,有22M, 只傳pdf文檔好了, 流量不多了...

 

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