103.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 处理,不允许在Completion 处理之前的操作,如拦截器。