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

Lil*_*lac 6 java tomcat config restart server

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

我尝试添加自动部署=真正的内部主机,server.xml中并重新加载=真正的内部context.xml.But这些都不奏效。

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

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

<Context reloadable="true">

    <!-- Default set of monitored resources -->
    <WatchedResource>Config/Design/configs/globalconfig</WatchedResource>
Run Code Online (Sandbox Code Playgroud)

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

编辑此外,我尝试在模块上自动重新加载,同时禁用和启用。另外,在这里我还不想使用JRebel。

小智 0

当 Context 元素位于 server.xml 中时,重新加载 Context 元素不太可能起作用,因为“...在不重新启动 Tomcat 的情况下无法重新加载 server.xml 文件”[1]。您可以尝试在“/META-INF/context.xml”[1] 处创建一个文件,并在其中添加上下文。

然后,您可以使用新的上下文文件替换 war 文件,而无需重新启动服务器。

或者,如果需要,您可以编程重新启动服务器。参见[2]

来源:
[1] https://tomcat.apache.org/tomcat-8.5-doc/config/context#Defining_a_context
[2] Java - Tomcat:重新加载 context.xml 而不重新启动服务器

  • 目前,如果配置发生更改(例如 abc.properties 等),则需要重新启动 Tomcat,因为这些设置大部分是存储和静态属性。我认为最好更改实现,以便设置更改在一分钟内无需重新启动即可生效。这是我关心的问题。我的配置数据位于应用程序外部,并在运行时调用。 (2认同)