100.28. consumer.bridgeErrorHandler の使用
Camel 2.10 で利用可能
Camel Error Handler を使用してファイルコンシューマーに発生した例外を処理する場合は、以下のように consumer.bridgeErrorHandler オプションを有効にできます。
// to handle any IOException being thrown
onException(IOException.class)
.handled(true)
.log("IOException occurred due: ${exception.message}")
.transform().simple("Error ${exception.message}")
.to("mock:error");
// this is the file route that pickup files, notice how we bridge the consumer to use the Camel routing error handler
// the exclusiveReadLockStrategy is only configured because this is from an unit test, so we use that to simulate exceptions
from("file:target/nospace?consumer.bridgeErrorHandler=true")
.convertBodyTo(String.class)
.to("mock:result");
そのため、このオプションを有効にすると、ルートのエラーハンドラーがそこから取得されます。
重要
consumer.bridgeErrorHandler 使用時 の consumer.bridgeErrorHandler を使用する場合、インターセプターは適用され ません。Exchange は Camel Error Handler によって直接処理され、onCompletion ではインターセプターなどの以前のアクションを許可しません。