2016-01-06 91 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文件? –