最近做的一个项目,在tomcat下启动没有问题,但是部署到weblogic 11g后就会报如下的错误:
<BEA-101165> <Could not load user defined filter in web.xml: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter...>
后来发现是xwork-2.1.2.jar和xwork-core-2.1.6.jar在weblogic 11g下有冲突,去掉xwork-core-2.1.6.jar就没问题,但是这个项目正好用到了struts2-json中的一些类,而它会用到xwork-core-2.1.6.jar中的org/apache/commons/lang/xwork/StringUtils中的类,所以去掉后在我所用的项目会包找不到org/apache/commons/lang/xwork/StringUtils类。看来Weblogic真是比较麻烦。
最后还是把struts2的jar包升级到了2.3.4的版本,这个版本没了xwork的jar包,只剩下xwork-core的jar包,这样就不冲突了
struts2的2.3.4jar包下载地址:http://pan.baidu.com/s/1pJ7IFyz
当然了,除了上面的原因,还有其他原因也会包101165的错误,比如编译的jdk版本与weblogic使用的jdk版本不一致,或者struts.xml配置文件的信息不正确,如包include其他xml文件使用含*通配符配置的,需要去掉,或者web.xml配置文件头信息不正确等等,这里就不一一说明了。只针对本次错误做个备忘。