在不重新启动Tomcat的情况下更改配置/设置

理想情况下,如果检测到更改,那么我想做的就是加载到新的 config 副本中,以便在数据库中对其进行更新,无需重新启动即可在应用程序中获取和更新它。

我试图在主机server.xml中添加 autodeploy = true ,并在context.xml中添加 reloadable = true 。但这都不起作用。

还有其他解决方案吗?我使用eclipse IDE,我的服务器是Tomcat。

我读到在上下文中添加内容将对此有所帮助。

<Context reloadable="true">

    <!-- Default set of monitored resources -->
    <WatchedResource>Config/Design/configs/globalconfig</WatchedResource>

但是这个仍然对我没有帮助。我是否以错误的方式给出了路径?我是从以下链接https://www.mulesoft.com/tcat/tomcat-reload中获得的

已编辑此外,我还尝试了在模块上自动重新加载,禁用和启用。并且还要注意一件事,我不想使用JRebel。

sundan308 回答:在不重新启动Tomcat的情况下更改配置/设置

如果我按问题的标题走

  

无需重新启动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

大家都在问