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包(如果有的话),安装之后,在控制台改变此应用的类加载顺序,改为“父类最后”加载顺序,保存设置,然后启动应用。


你可能感兴趣的:(websphere)