解决WAS更新web.xml文件不生效的问题(web_merged.xml是罪魁祸首)
问题原因分析
近日碰到更新web.xml
文件到WAS服务器(WebSphere Application Server 8.5.5.3)后,不生效的问题。
网上找了一圈,基本都是说WAS缓存引起的。
手动更新了缓存目录下(config\cells\<cell_name>\applications\<ear_name>\deployments\<app_name>\<war_name>\WEB-INF
)的web.xml
文件后,重启WAS,还是不生效。
凸(艹皿艹 )
几经折腾还是没有效果,突然回想起部署应用时,发现部署完后应用目录WEB-INF下会新增很多文件(包括ibm_开头的那几个文件),其中有个web_merged.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,也不需要重启应用。