2016-01-06 99 views
-1

是否有可能從servlet中永久修改web.xml,以便在運行時更改任何上下文參數(或init-param或其他)值時,此更改還反映了甚至重新啓動服務器後?我目前正在使用tomcat 8.如何從servlet中永久修改web.xml

回答

1

這樣做是非常糟糕的做法 - 這是因爲在更新應用程序時必須跟蹤更改。

如果您有這樣的要求,您應該將您的配置保存在別處,例如,在數據庫或您的網絡應用程序之外的某個文件中,以便您可以在不更改的情況下部署您的web應用程序,但仍可以讀取您當前運行的系統的配置。

不要忘記包含該配置文件/數據庫內容在您的備份。

此外,AFAIK tomcat(在其默認配置中)監視web.xml並在檢測到web.xml的更改時重新加載應用程序(例如關閉並重新啓動) - 這可能不是您期望的行爲。不要忘記,tomcat可能被配置爲僅部署WAR文件而無需解壓它 - 您甚至可能在磁盤上沒有web.xml文件。它仍然可以駐留在WAR文件中(這是可能的配置,只是不是標準)

0

您可以在java代碼中始終生成系統命令,以便將腳本或批處理文件用作輸入,然後修改web.xml文件。但是您仍然需要重新啓動Tomcat才能使更改生效。它從配置文件加載到內存。

+0

或可我使用SAX API來修改web.xml文件? –