Glassfish 3.1.2.2、MySQL 5.5サーバー、およびスタンドアロンのSwingベースのクライアントアプリケーションを使用した3層のアプリケーション設計があります。
現在、Glassfishでサーバー側アプリケーション(* .ear-file)を自動的に更新/再デプロイする方法の問題に直面しています。
クライアントは、更新されたファイル(client-jar-filesおよびserver-ear-files)を保管する更新サーバーで新しい更新を定期的にチェックします。新しいバージョンがあるとすぐに、クライアントはそれを更新サーバーからダウンロードし、Glassfishインスタンスに接続されているデータベースに保存します。
私の質問は、新しい*.earファイルをGlassfishにプログラムで再デプロイする方法です。
新しいプロセスを開き、Glassfishに付属のasadminツールを使用して、再デプロイを強制することで回避策を試しました。
Runtime.getRuntime().exec("./asadmin --user admin --passwordfile "+getPathToPwdFile()+" deploy --force=true "+getPathToNewEarFile());
しかし、このソリューションは厄介です。プロセスをフォークしたサーバーアプリケーションが再デプロイされるため、プロセスが終了する前にプロセスが削除されるためです。これにより、アプリケーションサーバーでエラーが発生します。
Glassfishv3のJMX/AMXプロジェクトは停止しているようです(最終更新2009)...
誰かがこの問題に対する適切な解決策を持っていますか?