gpt4 book ai didi

java - 从自身启动/停止 Web 应用程序?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:46:04 25 4
gpt4 key购买 nike

我使用 Java、Struts 制作了一个 Web 应用程序,并在 Apache Server 和 Tomcat 上运行。能够从 Web 重新启动应用程序将非常有用。我不想重启 Tomcat,只重启这个 webapp,就像 Tomcat Manager 那样。

你知道我该怎么做吗?如果没有,有什么方法可以模拟该行为(重新加载 config.properties、使 Hibernate 初始化进程等)?

非常感谢。

最佳答案

我快速浏览了 Tomcat 管理器的源代码。看起来有一个类是 Tomcat 源代码的一部分,名为“Container Servlet”。来自 javadocs:

A ContainerServlet is a servlet that has access to Catalina internal functionality, and is loaded from the Catalina class loader instead of the web application class loader.

ContainerServlet 会自动传递一个可用于获取 Context 和 Deployer 的包装器——并且 Deployer 具有有用的方法,例如 start(String contextPath)stop(String contextPath ) 这将执行您想要的操作。

因此,我认为您需要做的是编写自己的继承自 ContainerServlet 的 servlet,并配置 Tomcat 以使用 Catalina 类加载器加载您的 servlet(查看 Manager 的配置方式以了解如何)。请注意,在托管环境中,这可能不适合您。

然后您的 servlet 可以有一个按钮,您可以按下按钮重新加载应用程序。我建议在其前面设置某种密码保护。 :)

关于java - 从自身启动/停止 Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/987583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com