正确关闭Java Web应用程序

时间:2011-12-03 20:16:00

标签: java web-applications glassfish war

我正在寻找一种在应用程序本身内正确关闭(取消部署)Java Web应用程序的方法。我已经尝试过System.exit(),但这不仅关闭了webApp,还混淆了Glassfish。

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

2 个答案:

答案 0 :(得分:3)

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

如果要从应用程序本身以编程方式取消部署应用程序,可以使用JMX。请参阅glassfish JMX实现以了解要调用的bean。但恕我直言,我认为你真的不需要这个。

答案 1 :(得分:2)

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

该命令的一般形式是:

as-install/bin/asadmin undeploy war-name

对于war-name,请使用文字hello,而不是完整的hello.war名称。

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

as-install/bin/asadmin undeploy hello

请参阅以下参考资料:

http://docs.oracle.com/cd/E19798-01/821-1757/geyvr/index.html

http://docs.oracle.com/docs/cd/E19798-01/821-1758/undeploy-1/index.html

要以编程方式取消部署,您可以使用JSR-88,但我无法确切地看到您为什么要这样做的原因。参见

http://blogs.oracle.com/japod/entry/using_jsr_88_for_web

http://www.jcp.org/en/jsr/detail?id=88