war ファイルのデプロイ時に、データベースからシングルトンに構成をロードします。必要な構成変数のいずれかがデータベースにない場合は、アプリケーションを停止させたいと考えています。
Java では System.exit(1) を実行しますが、正しく理解していれば、これにより Glassfish である JVM が強制終了されます。
アプリケーションを強制終了するにはどうすればよいですか?
war ファイルのデプロイ時に、データベースからシングルトンに構成をロードします。必要な構成変数のいずれかがデータベースにない場合は、アプリケーションを停止させたいと考えています。
Java では System.exit(1) を実行しますが、正しく理解していれば、これにより Glassfish である JVM が強制終了されます。
アプリケーションを強制終了するにはどうすればよいですか?
サーブレットのServlet.initメソッドをオーバーライドします。
@Override
public void init(ServletConfig config) throws ServletException {
super.init(ServletConfig);
//load config from database, and eventually launch an exception of type ServletException
// for example throw new RequiredConfigMissingException(...);
}
必要な構成が欠落している場合は、タイプ ServletException の例外を起動します (拡張した方がよいでしょう)。
public class RequiredConfigMissingException extends ServletException
アプリケーション サーバーは Web アプリケーションをロードせず、デプロイを停止してアプリ サーバー ログにエラーを書き込みます。
ExceptionInInitializerError をスローすることで、必要な結果を得ることができました。@Startup シングルトンの @PostConstruct メソッド内で例外が発生するため、デプロイが停止します。
web.xml ファイルを調べます。すべての助けをありがとう。