2012-01-05 14 views
2

私はtomcat 7.0.23とspring 3.0.5+を使用しています。アプリケーションが正常に起動したか、失敗した場合にイベントを生成したい。成功したイベントを生成することができます。Bean ProductPostInitializer implements InitializingBeanを作成します。これはサービスBeanに依存し、メソッドafterPropertiesSetが呼び出されると成功したイベントが生成されます。tomcatアプリケーションが起動しないときのエラーイベントの作成方法

エラーイベントの生成方法は?

答えて

4

サブクラスContextLoaderListener

public class NotifyingContextLoaderListener extends ContextLoaderListener { 

    @Override 
    public void contextInitialized(ServletContextEvent event) { 
     try { 
      super.contextInitialized(event); 
      //generate success event 
     } 
     catch (RuntimeException e) { 
      //generate failure event 
      throw e; 
     } 
    } 
} 

そして、あなたのweb.xmlの代わりContextLoaderListenerでそれを使用する:成功イベントを生成するためのソリューションは、完全に安全ではないことを

<listener> 
    <listener-class>com.example.NotifyingContextLoaderListener</listener-class> 
</listener> 

注意。アプリケーション/コンテキスト全体ではなく、ProductPostInitializer Beanが正常に作成されたときにイベントを生成します。これは、後でコンテキスト起動が失敗した場合でもイベントが生成されることを意味します(例えば、ProductPostInitializerに基づくBeanは起動に失敗します)。

上記の解決策はこの問題を解決します。