Exception Camel嵌套选择和异常
我有一个驼峰路径,在该路径中,我尝试处理一个文件,然后根据文件处理是否成功,尝试向数据库插入一行。我只需添加一个属性“processed”,如果在我调用的bean中处理成功,则将其设置为true。因为我在检查这些条件,所以我有嵌套的choice和others语句,我只是想确保我的语句写得正确。这是我的路线的基本结构:Exception Camel嵌套选择和异常,exception,apache-camel,Exception,Apache Camel,我有一个驼峰路径,在该路径中,我尝试处理一个文件,然后根据文件处理是否成功,尝试向数据库插入一行。我只需添加一个属性“processed”,如果在我调用的bean中处理成功,则将其设置为true。因为我在检查这些条件,所以我有嵌套的choice和others语句,我只是想确保我的语句写得正确。这是我的路线的基本结构: from("file:/test") .choice() .when(header("CamelFileName").endsWith(".txt"))
from("file:/test")
.choice()
.when(header("CamelFileName").endsWith(".txt"))
.bean(new ProcessFileBean())
.choice()
.when(exchangeProperty("processed").isEqualTo(true))
.to("sql: insert into table (id, file) values (1, file)")
.otherwise()
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
logger.info("File has not been processed");
}
});
此外,我是否可以捕获路由中的任何异常,例如在数据库插入过程中,并将其记录到文件中?是,路由应使用您定义的路由工作 要捕获异常,请使用OnException语法根据特定异常采取一些操作。例如
OnException(IOException.class).handled(true.to)(“error”)代码>
您还可以捕获与普通java中的try-catch类似的异常。请看这里: