在这三种应用服务器下listener、filter、servlet的执行顺序是不一样的,我这几天就碰到了tomcat和websphere下跑的好好的应用,拿到weblogic下就运行出错的问题,后来发现问题有两个:
1 struts2.0.8tag的问题,升级到2.0.11后解决
2 当时我使用了struts2.0的spring插件,struts2.0.11老报得不到工厂的错误。最后的解决办法有两个:
一个是针对weblogic使用专门的web.xml配置,使用RequestContextFilter代替RequestContextListener。
另一个是自己写拦截器,从WebApplicationgUtil获得spring的applicationContext后,注入到action的基类上,业务bean通过调用action的getBean方法获得后强制转型后提供使用