4

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)...

誰かがこの問題に対する適切な解決策を持っていますか?

4

1 に答える 1

2

プログラムで ear ファイルを auto Glassfish の autodeploy フォルダにコピーするのはどうですか? デフォルトの自動展開チェック間隔は 2 秒ごとですが、これを増やして、プロセスが完了するのに十分な時間を与えることができます。

http://docs.oracle.com/cd/E18930_01/html/821-2417/gilfm.html#fvxzeを参照してください。

于 2013-01-25T12:13:14.670 に答える