Camel Error Handler를 사용하여 파일 소비자에서 발생하는 모든 예외를 처리하려면 다음과 같이 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?bridgeErrorHandler=true")
.convertBodyTo(String.class)
.to("mock:result");
// 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?bridgeErrorHandler=true")
.convertBodyTo(String.class)
.to("mock:result");
Copy to ClipboardCopied!Toggle word wrapToggle overflow
따라서 이 옵션을 활성화하려면 경로의 오류 처리기에서 해당 옵션을 사용해야 합니다.
중요
bridgeErrorHandler 를 사용하는 경우 bridgeErrorHandler를 사용할 때 interceptors onCompletions가 적용되지 않습니다. 교환은 Camel 오류 처리기에 의해 직접 처리되며 인터셉터와 같은 이전 작업(OnCompletion)을 허용하지 않습니다.