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配置之后,漏洞问题也彻底解决了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM