2011-12-03 120 views
2

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

我知道contextlistener,我只是想知道如何启动关机程序。

+3

的申请是由集装箱轮进行管理,而不是其他方式。你正在尝试做容器本身的工作,而且几乎不会有一个便携式(和安全的)解决方案。很可能,只要容器允许您调用这样的类,就需要使用容器特定的类。 –

+0

你为什么试图让应用程序自行解除部署? – Paul

回答

2

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

该命令的一般形式是:

as-install/bin/asadmin undeploy war-name 

对于战争的名称,使用文字打招呼,不完整的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

+0

Web应用程序通过使用RMI与本地Java应用程序连接,如果由于某种异常导致RMI连接丢失,那么Web应用程序没有理由因此必须关闭。 – rkokkelk

+0

使用进程生成器并调用此函数来解开自己 – tgkprog

3

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

如果您想要从应用程序本身以编程方式取消部署应用程序,则可以使用JMX。参考glassfish JMX实现来知道调用哪个bean。但恕我直言,我不认为你真的需要这个。

相关问题