Spring Batch(バージョン3.0.6)で作業を開始しました。私は仕事があり、内部のステップではReader-> Processor-> Writerを持っています。Reading(Spring Batch)中にファイルが見つからない場合の例外の特定方法
読み取り中にファイルが見つからない場合、例外をキャッチして識別する方法がスローされます。この場合、私は電子メールをトリガーしたいと思います。
Spring Batch(バージョン3.0.6)で作業を開始しました。私は仕事があり、内部のステップではReader-> Processor-> Writerを持っています。Reading(Spring Batch)中にファイルが見つからない場合の例外の特定方法
読み取り中にファイルが見つからない場合、例外をキャッチして識別する方法がスローされます。この場合、私は電子メールをトリガーしたいと思います。
ItemStream#open
(FlatFileItemReader
のファイルが開かれているため)によってスローされた例外を処理するのに、StepExecutionListener
を使用して、そこから電子メールを送信できます。障害の原因となった例外を取得するには、ステップが失敗した例外が含まれるStepExecution#getFailureExceptions
を参照してください。
あなたがここにjavadocの中StepExecutionListener
詳細を読むことができます:https://docs.spring.io/spring-batch/apidocs/org/springframework/batch/core/StepExecutionListener.html
私はすでにItemReaderListener(ONERROR方法)を試してみました。しかし、私が見つけたのは、ファイルが存在しない場合(誤ったファイル名を意図的に与えた場合)、その投げ込み** org.springframework.batch.item.ItemStreamException:リーダーを初期化できませんでした**。リスナーのonReadErrorメソッドは実行されません。 –
ああ。申し訳ありません。私はファイルのオープンが 'ItemStream#open'で起こっていることを忘れていました。その場合、 'StepExecutionListener#afterStep'を使用してください。提供された 'StepExecution#getFailureExceptions'の中で、エラーの原因となった例外が見つかります。私はそれに応じて私の答えを更新しました。 –