roc*_*cky 4 spring apache-camel spring-boot camel-ftp spring-camel
我有 10 条骆驼路线,如下所示:
\n@AllArgsConstructor\npublic class MyCamelRoute extends RouteBuilder {\n\n /**\n * {@inheritDoc}\n */\n @Override\n public void configure() throws Exception {\n }\n} \nRun Code Online (Sandbox Code Playgroud)\n多于MyCamelRoute是使用以下代码创建的,该代码将 Camel 路由加载到 Spring 容器中:
@Bean("myCamelRoute")\n public RouteBuilder createMyCamelRoute () {\n return new MyCamelRoute();\n }\nRun Code Online (Sandbox Code Playgroud)\n现在我需要在 Camel 上下文 \xe2\x80\x93 上有一个覆盖所有路由的全局异常处理程序。
\n您可以从camel文档中为Routebuilder内定义的所有路由定义全局异常子句
Java DSL 的全局范围是每个 RouteBuilder 实例,因此如果您想在多个 RouteBuilder 类之间共享,则创建一个基本抽象 RouteBuilder 类并将错误处理逻辑放入其配置方法中。然后扩展这个类,并确保类 super.configure()。我们只是使用 Java 继承技术。
换句话说,BaseRouteBuilder 类将是:
public abstract BaseRouteBuilder extends RouteBuilder {
@Override
public void configure() {
onException(Throwable.class).log("Excpetion caught");
}
Run Code Online (Sandbox Code Playgroud)
然后是你的路线:
@AllArgsConstructor
public class MyCamelRoute extends BaseRouteBuilder {
/**
* {@inheritDoc}
*/
@Override
public void configure() throws Exception {
super.configure();
// Route Configuration here
}
Run Code Online (Sandbox Code Playgroud)
}
super.configure()正如所指出的,从子类调用非常重要,否则异常子句将不会被执行。
| 归档时间: |
|
| 查看次数: |
1685 次 |
| 最近记录: |