2

サーブレットのいずれかが初期化に失敗した場合、Web アプリケーションが起動時に失敗するようにします。メソッドから例外をスローするServlet.init()と、アプリ全体が失敗することが予想されますが、そうではないようです。Web コンテナー (私の場合は Tomcat 7) はその特定のサーブレットのロードに失敗するだけですが、アプリケーションはとにかく正常にデプロイされたと報告されています。

egServletContextListener.contextInitialized()メソッドから例外がスローされた場合は期待どおりに動作しますが、メソッドからスローされた例外Servlet.init()がこの効果を持たないのはなぜですか?

サーブレットの初期化エラーが発生した場合にアプリケーションを停止する方法はありますか?

4

1 に答える 1

3

次の手順を試してください。

  1. アプリケーションの起動時にサーブレットが初期化されるように、サーブレットを起動時のロード リストに保持します。
  2. Servlet.init() メソッドで、サーブレットが初期化されていることを示す属性を ServletContext に設定します。例、myServletInited
  3. ServletContextListener.contextInitialzied() メソッドを実装します。myServletInitedが存在するかどうかを確認します。存在しない場合、アプリケーションを失敗させる例外をスローします。
于 2013-01-07T06:11:46.713 に答える