0

war ファイルのデプロイ時に、データベースからシングルトンに構成をロードします。必要な構成変数のいずれかがデータベースにない場合は、アプリケーションを停止させたいと考えています。

Java では System.exit(1) を実行しますが、正しく理解していれば、これにより Glassfish である JVM が強制終了されます。

アプリケーションを強制終了するにはどうすればよいですか?

4

2 に答える 2

1

サーブレットの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 アプリケーションをロードせず、デプロイを停止してアプリ サーバー ログにエラーを書き込みます。

于 2012-11-15T06:07:43.560 に答える
1

ExceptionInInitializerError をスローすることで、必要な結果を得ることができました。@Startup シングルトンの @PostConstruct メソッド内で例外が発生するため、デプロイが停止します。

web.xml ファイルを調べます。すべての助けをありがとう。

于 2012-11-15T07:45:51.147 に答える