1. 程式人生 > >axis2 與 websphere jar包衝突的解決辦法

axis2 與 websphere jar包衝突的解決辦法

專案中要用到axis2釋出webservice服務,用的是1.7.1版本,在tomcat和weblogic中部署均正常,但是釋出到websphere7.0時,卻報瞭如下異常:

com.ibm.ws.webcontainer.servlet.ServletWrapper initSRVE0100E: 應用程式 mcesys_war 中的 servlet AxisServlet 建立了未捕獲到的 init() 異常:java.lang.NoClassDefFoundError:org.apache.woden.resolver.URIResolver;

在網找了很多方法,主要是JAR包衝突,一是改變was的類的載入順序,改為“父類最後”載入,更改之後,結果啟動程式時,又報瞭如下異常: incompatible with javax.servlet.Filter;

二是was建立共享庫,將axis2的JAR包提取出來放到共享庫中,然並;

被這個錯誤折磨好幾天,睡不好吃不香,實在沒辦了,準備換webservice框架了。今天在網上看CXF與websphere的jar包衝突時,看到一篇博文,提到上面第一種方法(就是改變was的類載入順序),博文上說改成“父類最後”載入前要去掉工程中bin下的servlet-api.jar這個JAR包。我抱著試試看的態度,試了一下,結果真的成功了,問題解決了。

總結一下解決辦法:.war安裝之前刪除工程中bin下的servlet-api.jar這個JAR包(如果有的話),安裝之後,在控制檯改變此應用的類載入順序,改為“父類最後”載入順序,儲存設定,然後啟動應用。