正确关闭Java Web应用程序

正确关闭Java Web应用程序,java,web-applications,glassfish,war,Java,Web Applications,Glassfish,War,我正在寻找一种在应用程序本身中正确关闭(取消部署)JavaWeb应用程序的方法。我尝试了System.exit(),但这不仅关闭了webApp,还弄乱了Glassfish 我知道contextlistener,我只是想知道如何启动关闭过程。部署web应用程序是应用程序服务器的责任。我知道它在Glassfish中是如何运行的,但在其他应用程序中是如此。服务器(例如JBoss、Tomcat等)具有基于web的管理应用程序,允许执行此操作 如果希望以编程方式从应用程序本身取消部署应用程序,可以使用JM

我正在寻找一种在应用程序本身中正确关闭(取消部署)JavaWeb应用程序的方法。我尝试了System.exit(),但这不仅关闭了webApp,还弄乱了Glassfish


我知道contextlistener,我只是想知道如何启动关闭过程。

部署web应用程序是应用程序服务器的责任。我知道它在Glassfish中是如何运行的,但在其他应用程序中是如此。服务器(例如JBoss、Tomcat等)具有基于web的管理应用程序,允许执行此操作


如果希望以编程方式从应用程序本身取消部署应用程序,可以使用JMX。请参考glassfish JMX实现,了解要调用哪个bean。但是我不认为您真的需要它。

通常的方法是使用asadmin undeploy命令

命令的一般形式为:

as-install/bin/asadmin undeploy war-name
as-install/bin/asadmin undeploy hello
对于war名称,请使用文字hello,而不是完整的hello.war名称

对于hello.war示例,命令为:

as-install/bin/asadmin undeploy war-name
as-install/bin/asadmin undeploy hello
见以下参考资料:

要以编程方式取消部署,您可以使用JSR-88,尽管我看不出您想要这样做的真正原因。看


应用程序由容器管理,而不是由容器管理。您正试图完成容器本身的工作,几乎没有可移植(和安全)的解决方案。最有可能的情况是,您需要使用特定于容器的类,只要容器允许您调用此类类。为什么您要尝试让应用程序自行取消部署?Web应用程序通过使用RMI与本地Java应用程序连接,如果由于某种例外情况,RMI连接丢失,没有理由关闭Web应用程序。请使用process builder并调用此函数以自行解除挂钩