問題原因分析
近日碰到更新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,也不需要重啟應用。