質問
J2EEアプリケーションを(アプリケーションから)再起動できるかどうか知っている人はいますか?もしそうなら、どのようにして?
可能であれば、アプリサーバーに依存しない方法でそれを実行できるようにしたいと考えています。
アプリケーションは、基本的にクライアントが好むさまざまなアプリ サーバー上で実行されます。
アプリサーバーに依存しない方法でこれを行うことができない場合は、おそらく、私の目的のためにそれを行う価値はありません。いつでも、アプリを手動で再起動する必要があることをユーザーに通知するメッセージを表示するだけで済みます。
解決
アプリサーバーに依存しない方法を見つける可能性は低いと思います。また、私はあなたの要求を知っているつもりはありませんが、新しいバージョンを展開するインストーラー以外のアプリケーション自体を再起動する必要がある設計には疑問を抱くかもしれません。最後に、重要な目的では、「どの」アプリサーバーも機能しないことをお勧めします。サポートされているアプリのサーバーとバージョンのリストがリリース ノートに記載されている必要があります。そうすれば、それらすべてでテストでき、準拠していないサーバー/バージョンでクライアントをサポートすることを心配する必要がなくなります。経験上、Apache Tomcat と BEA WebLogic などの間には常に微妙な違いがあり、これらの違いは文書化されていないことが多く、実際に遭遇するまで判断するのは困難です。
他のヒント
ほとんどのアプリケーション サーバーは JMX インターフェイスを提供しているため、それを呼び出すことができます。
Servicewrapper を使用してアプリケーション サーバーを管理し、その API メソッドを使用してサービスの再起動を要求することをお勧めします。いくつかの構成が必要になるため、これが特定の環境で機能するかどうかを知るのは困難ですが、これが私が知る限り、サーバー間の互換性さえ十分にある唯一の解決策です。