WAS更新web.xml配置文件不生效的问题

问题及原因分析:

  之前修复漏洞时,写了个过滤器配置在web.xml中,但是部署到服务器并重启后,重新扫描漏洞,还是没有解决对应问题。在确定了这种修复方案是切实可行之后分析,可能是配置的web.xml未生效,搜索网上对应问题及检查部署过程发现,部署完后应用目录WEB-INF下会新增很多文件,其中有个web_merged.xml文件(如下图)。

  该文件包含了web.xml文件中的内容,不过是旧的配置文件的配置内容,可以理解为是web.xml文件的缓存文件,且大部分时候,即使重新部署了web.xml文件后,项目实际使用的还是这个web_merged.xml文件的配置内容。

解决方案:

  找到了问题的原因之后一切就好办了,下面就是解决方案

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

  最后,在解决了该文件的缓存问题使用了最新的web.xml配置之后,漏洞问题也彻底解决了。

posted @ 2019-03-04 22:40  Xavier-Xu  阅读(2412)  评论(0编辑  收藏  举报