解决WAS更新web.xml文件不生效的问题(web_merged.xml是罪魁祸首)

问题原因分析

近日碰到更新web.xml文件到WAS服务器(WebSphere Application Server 8.5.5.3)后,不生效的问题。
网上找了一圈,基本都是说WAS缓存引起的。

手动更新了缓存目录下(configcells<cell_name>applications<ear_name>deployments<app_name><war_name>WEB-INF)的web.xml文件后,重启WAS,还是不生效。

凸(艹皿艹 )

几经折腾还是没有效果,突然回想起部署应用时,发现部署完后应用目录WEB-INF下会新增很多文件(包括ibm_开头的那几个文件),其中有个web_merged.xml文件。
部署到WAS后,WEB-INF文件夹下新增了几个文件

打开web_merged.xml一看,果然,里面包含了web.xml的内容,但是,是旧的内容。

解决方案

问题原因就这样找到了,下面就是解决方案

  • 方案一

    1. 更新web.xml的同时,把改动也更新到web_merged.xml
    2. 把更新完的两个文件,复制到配置缓存目录下(configcells<cell_name>applications<ear_name>deployments<app_name><war_name>WEB-INF)。
    3. 最后,你需要重启一下WAS服务。
  • 方案二
    使用WAS的web控制台进行更新web.xml文件(登陆控制台,选择程序后点击“更新”,选择“替换或添加单个文件 ”,然后参考下图)。
    WAS会自动把更改同步到web_merged.xml以及缓存目录下。(相当于WAS帮你进行了方法一的操作)
    使用这个方法,你甚至都不需要重启WAS,也不需要重启应用。

参考:

原文地址:https://www.cnblogs.com/danne823/p/was_cache.html