2011-12-03 13 views
2

Java Webアプリケーションをアプリケーション内で正しくシャットダウン(アンデプロイ)する方法を探しています。私はSystem.exit()を試してみましたが、これはwebAppをシャットダウンするだけでなく、Glassfishを駄目にします。適切なシャットダウンJava Webアプリケーション

私はコンテキストリスナーについて知っていますが、シャットダウン手順の開始方法は不思議です。

+3

参照してください。あなたはコンテナ自体の作業をしようとしていますが、ポータブルな(そして安全な)ソリューションはほとんどありません。ほとんどの場合、コンテナ固有のクラスを使用する必要があります。コンテナ固有のクラスは、そのようなクラスを呼び出すことができる限り、使用する必要があります。 –

+0

なぜアプリケーションをアンデプロイしようとしていますか? – Paul

答えて

2

通常の方法は、asadmin undeployコマンドを使用することです。

コマンドの一般的な形式は次のとおりです。戦争-nameに

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-あなたがなぜこれをしたいのかという理由は本当にわかりませんが、アプリケーションは、他の方法でラウンドをコンテナによって管理されておらず、

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

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

+0

RMIを使用してWebアプリケーションがローカルJavaアプリケーションと接続している場合、RMI接続が失われた場合、Webアプリケーションがシャットダウンする理由がないためです。 – rkokkelk

+0

プロセスビルダを使用し、これを呼び出して自分自身をフックします – tgkprog

3

Webアプリケーションのデプロイメントは、アプリケーションサーバーが行います。私はグラスフィッシュではどのように他のアプリが知っている。サーバー(JBoss、Tomcatなど)には、これを可能にするWebベースの管理アプリケーションがあります。

アプリケーション自体からアプリケーションをプログラムでアンデプロイする場合は、JMXを使用できます。どのBeanを呼び出すかを知るには、glassfish JMXの実装を参照してください。しかし、IMHO私はあなたが本当にこれが必要とは思わない。

関連する問題