1

システム内に重要なファイルが存在するなど、アプリケーションの起動時にいくつかの条件を確認しようとしています。これを行うために、起動時に一連の条件をテストする SerlvetContextListener を使用しています。

これらの条件のいずれかが満たされない場合、アプリケーションが Tomcat での展開を拒否するようにするにはどうすればよいですか? 例外をスローしてログに記録することもできますが、アプリケーションがまったく起動しないようにしたいと考えています。Tomcat サービスの起動に失敗しても解決策になります。

最も簡単な方法は何ですか?Tomcat マネージャーに接続して、アプリをアンデプロイする必要がありますか?

4

1 に答える 1

2

良い...

元の質問によると、特定のファイルが存在しない場合 (または他の条件が満たされない場合)、アプリケーションを「まったく開始しない」ようにしたいと考えています。論理的には、条件のチェックがアプリケーションの一部になることはあり得ないということになります (チェックがアプリケーションの一部として実行される場合 (たとえば、起動時に)、それらのチェックのためにアプリケーションを起動する必要があります)。行われる)。

そう:

  1. 特定の条件が満たされない限り、アプリケーションをまったく開始したくない場合は、ソリューションをアプリケーションの外部にする必要があります。たとえば、最初に条件をチェックしてから Tomcat を起動する独自の Tomcat 起動スクリプトを作成できます。

  2. アプリケーションがチェックを開始して実行することを気にしない場合は、ServletContextListenerまさにこれを利用する必要があります。内部から例外をスローするcontextInitialized()と、アプリケーションはリクエストを処理できなくなります。または、Tomcat の MBean と通信して、チェックに合格しなかった場合にアプリケーションを停止することもできます。

于 2013-02-05T01:35:05.663 に答える