现象:
工程中修改web.xml后,部署到was中,发现不生效!
分析:
通过搜索,was中工程的编译路径,可以看到文件web_merged.xml文件,该文件包含了web.xml文件中的内容,通过查询内容发现还是更新之前的配置信息,此时我们可以理解该为web_merged.xml文件是web.xml文件的缓存文件,这就导致在重新部署了web.xml文件后,项目实际使用的还是这个web_merged.xml文件里所配置的内容,即更新之前的web.xml。
解决方案:
方案一:
- 更新web.xml的同时,需要把修改的地方也同步更新到web_merged.xml文件中
- 把更新完的两个文件,复制到配置缓存目录下(config\cells\<cell_name>\applications\<ear_name>\deployments\<app_name>\<war_name>\WEB-INF)。
- 最后,你需要重启一下WAS服务。
方案二:
使用WAS的web控制台进行更新web.xml文件(登陆控制台,选择程序后点击“更新”,选择“替换或添加单个文件 ”,然后参考下图)。
WAS会自动把更改同步到web_merged.xml以及缓存目录下。(相当于WAS帮你进行了方法一的操作)
使用这个方法,你甚至都不需要重启WAS,也不需要重启应用。
应用程序--应用程序类型--WebSphere企业应用程序--选择程序(cmis.war)--更新
最后,在解决了该文件的缓存问题使用了最新的web.xml配置。