问题现象:
今天在公司发布了应用系统,系统的架构采用struts2搭建。在公司内部测试时运行正常,但在客户现场同样部署成功后却发现调用struts2的action时websphere报出404错误。一时间感到郁闷异常。后发现公司中websphere的版本为was6.1.0.0;客户websphere版本为was6.1.0.35,至此问题找到。
解决方案:
发现该问题是websphere6.1的一个bug;存在于6.1.0.5以上的版本(怪不得公司版本没有问题!);解决方法如下,
1、在控制台中,服务器>应用程序服务器>[选择所使用的服务器]>Web 容器设置>Web 容器>定制属性,增加名称为 “com.ibm.ws.webcontainer.invokefilterscompatibility”的定制属性,值为true。
2、把struts2 的所有包升级到 2.1.7
3. 在web.xml中加上
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>