1

Java-春-クォーツアプリケーション

いくつかのデータを処理するためにクォーツスケジューラを使用するSpring3.xを備えたJavaアプリケーションがあります。グローバルグローバルサーブレットコンテナ例外ハンドラを定義した次の記事を見ていました

アプリケーションで発生する例外をキャッチするようにSpringを構成したいと思います。上記の記事では「org.springframework.web.servlet.handler.HandlerExceptionResolverComposite」を使用しています。これはサーブレット固有の実装であるため、使用できません。

どんな助けでも大歓迎です。

4

2 に答える 2

0

あなたが言及したクラスは、特定の例外をハンドラーに一致させるために、SpringMVCDispatcherServletのcatchブロックで使用されます。AFAIKには、バニラSpringでこれをすぐに実行できるクラスはありませんが、アプリに同様の実行コンテナーを作成できなかった理由はありません。

public interface ExceptionHandler {
  public void handle(Exception e);
}

public class ExecutionEnvironment {
  private Map<Class, ExceptionHandler> executionHandlers;

  public void run() {
    try {
      // Your app code...
    } catch (Exception e) {
      if(executionHandlers.get(e.getClass()) != null) {
         executionHandlers.get(e.getClass()).handle(e); 
      } else {
        throw new RuntimeException(e);
      }
    }
  }
}

次に、コンテキスト構成を使用して例外ハンドラーを設定します。お役に立てれば。

于 2012-12-03T17:16:21.130 に答える
0

例外がキャッチされたときに何をしたいのかについては言及していません。例外をログに記録したいだけの場合は、そのためにAOPを使用できます。

おそらくもっと簡単な解決策は、例外をキャッチするクラスでタスクをラップすることです。

于 2012-12-03T18:55:25.347 に答える