Exception Camel嵌套选择和异常

Exception Camel嵌套选择和异常,exception,apache-camel,Exception,Apache Camel,我有一个驼峰路径,在该路径中,我尝试处理一个文件,然后根据文件处理是否成功,尝试向数据库插入一行。我只需添加一个属性“processed”,如果在我调用的bean中处理成功,则将其设置为true。因为我在检查这些条件,所以我有嵌套的choice和others语句,我只是想确保我的语句写得正确。这是我的路线的基本结构: from("file:/test") .choice() .when(header("CamelFileName").endsWith(".txt"))

我有一个驼峰路径,在该路径中,我尝试处理一个文件,然后根据文件处理是否成功,尝试向数据库插入一行。我只需添加一个属性“processed”,如果在我调用的bean中处理成功,则将其设置为true。因为我在检查这些条件,所以我有嵌套的choice和others语句,我只是想确保我的语句写得正确。这是我的路线的基本结构:

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类似的异常。请看这里: