Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从自身启动/停止web应用程序?_Java_Tomcat_Jakarta Ee - Fatal编程技术网

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

Java 从自身启动/停止web应用程序?,java,tomcat,jakarta-ee,Java,Tomcat,Jakarta Ee,我已经使用Java、Struts和Apache服务器以及Tomcat开发了一个web应用程序。能够从web重新启动应用程序将非常有用。我不想重启Tomcat,只想重启这个webapp,就像Tomcat Manager那样 你知道我怎么做吗?如果没有,有什么方法可以模拟这种行为(重新加载config.properties,使Hibernate初始化进程,等等) 非常感谢。我快速查看了Tomcat管理器的源代码。看起来有一个类是Tomcat源代码的一部分,称为“容器Servlet”。从javadoc

我已经使用Java、Struts和Apache服务器以及Tomcat开发了一个web应用程序。能够从web重新启动应用程序将非常有用。我不想重启Tomcat,只想重启这个webapp,就像Tomcat Manager那样

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


非常感谢。

我快速查看了Tomcat管理器的源代码。看起来有一个类是Tomcat源代码的一部分,称为“容器Servlet”。从javadocs:

ContainerServlet是一个servlet 可以进入卡塔琳娜内部医院 功能,并从 Catalina类装入器而不是 web应用程序类加载器

ContainerServlet会自动传递一个可用于获取上下文和部署器的包装器,部署器有一些有用的方法,例如
start(String-contextPath)
stop(String-contextPath)
,这些方法可以满足您的需要

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


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

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

只需点击URL即可

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

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

开始。它模拟您使用manager应用程序。

您可能会发现链接很有用。由于Tomcat 7,您必须使用
manager/text
而不是
manager