首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从自身启动/停止web应用程序?

问从自身启动/停止web应用程序?
EN

Stack Overflow用户
提问于 2009-06-12 16:16:58
回答 3查看 6.2K关注 0票数 8

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

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

非常感谢。

EN

回答 3

Stack Overflow用户

发布于 2009-06-12 17:50:18

我快速浏览了一下Tomcat Manager的源代码。看起来Tomcat源代码中有一个叫做"Container Servlet“的类。在javadoc中:

servlet ContainerServlet是可以访问

内部功能的servlet,它是从Catalina类加载器而不是web应用程序类加载器加载的。

ContainerServlet会自动传递一个包装器,该包装器可用于获取上下文和Deployer -- Deployer有一些有用的方法,如start(String contextPath)和stop(String contextPath),它们将执行您想要的操作。

因此,我认为您需要做的是编写自己的servlet,该servlet继承自ContainerServlet,并将Tomcat配置为使用Catalina类加载器加载您的servlet(查看管理器是如何配置的)。请注意,在托管环境中,这可能不是一个选项。

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

票数 5
EN

Stack Overflow用户

发布于 2009-06-13 17:36:30

只要点击URL

代码语言:javascript
复制
http://<username>:<password>@<hostname>:<port>/manager/stop?path=/<context path> 

停下来,

代码语言:javascript
复制
http://<username>:<password>@<hostname>:<port>/manager/start?path=/<context path> 

一开始。它使用管理器应用程序模拟您。

票数 3
EN

Stack Overflow用户

发布于 2009-06-12 19:15:03

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/987583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档