在我的项目中,我想在每个新创建的路径上应用单独的OnCompletion和OnException处理器。
假设我必须创建3条路线。对于每个路由,我正在准备一个单独的RouteBuilder类并进行如下配置 -
onException(Throwable.class).handled(true).process(new ExceptionHandlingProcessor(RouteId)).maximumRedeliveries(2)
.redeliveryDelay(1000).retriesExhaustedLogLevel(LoggingLevel.ERROR)
.retryAttemptedLogLevel(LoggingLevel.WARN);
onCompletion().process(new OnCompletionProcessor(RouteId)) ;
from("sftp:Configuration").routeId("test")
.choice()
.when(body().isEqualTo(null))
.process(new AgeCalculatingProcessor("test"))
.otherwise()
.to("file:configuration").log("Downloaded file ${file:name} complete.")
;
我的问题是.... OnException和OnCompletion正在处理在同一个Route Builder类上创建的路由(因为我在每个RouteBuilder类中只创建一个路由)或者这些将应用于上下文级别并将在所有路线上工作?
实际上我想在路由级别应用Onexception和OnCompletion,但我得到异常(比如 - 尝试将OnException移到路由顶部),如果我在每个endPoint上应用OnException,如下所示 -
从(SFTP:CONF).OnException(Throwable.class).restExceptionconf 。要(文件:CONF).OnException(Throwable.class).restExceptionConf