如果我按问题的标题走
无需重新启动Tomcat即可更改配置/设置
我同意Jomcy Johny的观点,即也许需要对设计方法进行审查。继续上面的评论,也许您应该考虑将配置保留在容器之外。实现相同的方法有很多,Apache Zookeeper就是其中一个可能的方向。
在旁注中,Mule文档中提到的路径通常采用'WEB-INF / x / yz'或'/Dir0/config.file'的形式。
,
可以将Web应用程序部署到正在运行的Tomcat服务器。
如果Host autoDeploy属性为“ true”,则Host将尝试根据需要动态地部署和更新Web应用程序,例如,如果将一个新的.WAR放入appBase中。为此,主机需要启用后台处理,这是默认配置。
autoDeploy设置为“ true”,并且运行的Tomcat允许:
- 部署复制到主机appBase中的.WAR文件。
- 部署展开的Web应用程序,并将其复制到
托管appBase。
- 重新部署已经部署的Web应用程序
提供新的.WAR时从.WAR中获取。在这种情况下爆炸
Web应用程序将被删除,并且.WAR再次被扩展。注意
如果将主机配置为.WAR,则不会发生爆炸
不会在将unpackWARs属性设置为“ false”的情况下爆炸,其中
Web应用程序将被简单地重新部署为压缩文件的情况
存档。
- 如果/WEB-INF/web.xml文件(或
任何其他定义为WatchedResource的资源)都会更新。
如果上下文描述符文件,则重新部署Web应用程序
从中更新了已部署Web应用程序的位置。
- 如果上下文描述符文件(带有
与先前的上下文路径相对应的文件名
已部署的Web应用程序)添加到
$ CATALINA_HOME / conf / [引擎名称] / [主机名称] /目录。
- 如果Web应用程序的文档库(docBase)为
已删除。请注意,在Windows上,这假定反锁定
功能(请参阅上下文配置)已启用,否则未启用
可以删除正在运行的Web应用程序的资源
以上是Apache tomcat的摘录,也是我从hot deploy获得的有关热部署的大多数一般想法
,
当它们位于server.xml中时,重新加载上下文元素不太可能起作用,因为“ ...不重新启动Tomcat就无法重新加载... server.xml文件”。
您可以尝试的是在“ /META-INF/context.xml”[1]中创建一个文件,然后在其中添加上下文。
然后您可以使用新的上下文文件替换war文件,而无需重新启动服务器。
或者您可以根据需要对服务器重新启动进行编程。见[2]
来源:
[1] https://tomcat.apache.org/tomcat-8.5-doc/config/context#Defining_a_context
[2] Java - Tomcat: Reload context.xml without restarting server
,
您可以编写脚本并将其作为服务在应用程序外部运行,以跟踪配置文件的上次修改时间,如果发生更改,请切换到Tomcat容器并运行以下命令(考虑操作系统为Linux) ):
source ~/.bashrc
(对于Windows,在更改环境变量并保存后立即完成。)
希望这会有所帮助。
本文链接:https://www.f2er.com/3150564.html