war ファイルがサーバーにデプロイされる前に、毎回 Java コードを実行する必要がありJetty
ます。私の必要性は、新しい戦争を展開するたびに、データベースをクリーンアップし、展開前にいくつかのレコードを追加する Java コードを実行する必要があることです。
これはアプリケーションの起動時に記述できますが、展開が行われるときに 1 回限りのプロセスです。
誰でもこれを行う方法を提案できますか。ありがとう。
war ファイルがサーバーにデプロイされる前に、毎回 Java コードを実行する必要がありJetty
ます。私の必要性は、新しい戦争を展開するたびに、データベースをクリーンアップし、展開前にいくつかのレコードを追加する Java コードを実行する必要があることです。
これはアプリケーションの起動時に記述できますが、展開が行われるときに 1 回限りのプロセスです。
誰でもこれを行う方法を提案できますか。ありがとう。
これを行う方法は、ContextListener からコードを呼び出すことですが、新しい WAR ファイルがデプロイされているときにコードを 1 回だけ実行するために、WAR のファイルにフラグを置きます。
たとえば、空のファイルをWARに特定の名前で配置し、ContextListenerのコードで次のようにすることができます。
if(file is present){
do something, call DB etc
delete(file)
}
もう 1 つの (よりクリーンな?) 方法は、次のような初期値 false で構成プロパティ ファイルにプロパティを配置することです。
initialDeploymentCodeExecuted=false
次に、ファイル全体ではなく、このプロパティを確認します。false の場合に実行されるコードで true に変更します。
コンテキストリスナーはどうですか?contextInitialized()メソッドに db クリーンアップ コードを追加できます。