繁体   English   中英

从自己开始/停止Web应用程序?

[英]Start / stop a web application from itself?

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

你知道我怎么办吗? 如果没有,任何方式来模拟该行为(重新加载config.properties,使Hibernate初始化进程等)?

非常感谢。

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

ContainerServlet是一个可以访问Catalina内部功能的servlet,它是从Catalina类加载器而不是Web应用程序类加载器加载的。

ContainerServlet自动传递一个包装器,可以用来获取Context和Deployer - 而Deployer有一些有用的方法,比如start(String contextPath)stop(String contextPath) ,它们可以做你想要的。

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

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

只需点击网址即可

http://<username>:<password>@<hostname>:<port>/manager/stop?path=/<context path> 

停下来

http://<username>:<password>@<hostname>:<port>/manager/start?path=/<context path> 

开始。 这模拟了你使用管理器应用程序。

Tomcat Manager提供了一个http接口来启动/停止应用程序和其他任务。 您可以使用Ant任务轻松访问这些操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM