我正在遷移部署在WAS 6.1上的應用程序。它是基於CXF的Web服務,與Java 1.5(在JDK 1.4上開發)兼容。它需要在WAS 8.5.5.9上進行遷移/部署。將CXF Web服務應用程序遷移到WebSphere 8.5.5
我會需要任何一種代碼更改或配置更改就足夠了嗎?
我正在遷移部署在WAS 6.1上的應用程序。它是基於CXF的Web服務,與Java 1.5(在JDK 1.4上開發)兼容。它需要在WAS 8.5.5.9上進行遷移/部署。將CXF Web服務應用程序遷移到WebSphere 8.5.5
我會需要任何一種代碼更改或配置更改就足夠了嗎?
最大的障礙可能是WAS現在包含了自己的Web服務庫(直到一個功能包才被添加到6.1),所以你需要做一些配置來使用第三個第三方Web服務實現。官方文檔是在這裏:https://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.nd.doc/ae/twbs_thirdparty.html
最重要的事情:
1)設置屬性,以禁用WebSphere的JAX-WS引擎
2)請確保您的CXF實現和JAX-WS API是打包在一個PARENT_LAST類加載器中(一個在委託給其父母之前進行本地搜索的加載器,以防止您選擇WebSphere的JAX-WS運行時)。文檔建議將您的Web模塊類加載器設置爲PARENT_LAST,但將CXF/JAX-WS jar添加到共享庫中使用「使用隔離類加載器」選項會更安全,這會導致只有那些特定的jar以這種方式加載。
謝謝賈裏德的回覆。我會在接下來的幾天更新這篇文章。 – Abhi
只是想指出,如果您的應用程序編碼爲僅使用API,而不是特定於CXF的特定應用程序,則可能不必禁用WAS提供的版本。 – dbreaux
在這種情況下,您也可以只使用WAS提供的API,而不打擾CXF的打包。如果你因爲任何原因死在CXF上,那麼我認爲「禁用」屬性是強制性的 - 如果你不這樣做,WAS提供者將執行註釋掃描,並且你冒着像LinkageErrors之類的風險,因爲WebSphere和具有可見性的應用程序分離API的副本。 – Jarid