如何在使用Java DSL的路由中使用apache Camel在try catch块中使用选项

时间:2017-12-05 11:47:13

标签: apache-camel

如何在使用Java DSL的路由中使用Apache Camel在try catch块中进行选择?

我有一种情况,我需要以下结构:

  

路线 - >从 - > doTry - >选择 - >在 - >简单 - >到 - >否则 - >到 - > enddoTry - > docatch - >到 - > enddocatch - > endroute

截至目前,我尝试过以下几行:

    .doTry()
    .choice()
    .when(header("CamelFileName").contains("xxxxx"))
    .to()
    .otherwise().to("controlbus:route?routeId=XXXX&action=stop")
    .doCatch(java.lang.Exception.class)
    .log("STOPPING ROUTE")
    .to("controlbus:route?routeId=XXXX&action=stop&async=true")

但我得到" 找不到符号"错误docatch()

请您建议使用"选择"用Java DSL尝试catch块?

1 个答案:

答案 0 :(得分:1)

试试这个。这应该工作

.doTry()
    .choice()
      .when(header("CamelFileName").contains("xxxxx"))
        .to()
      .otherwise()
        .to("controlbus:route?routeId=XXXX&action=stop")
.endDoTry()
.doCatch(java.lang.Exception.class)
.log("STOPPING ROUTE")
.to("controlbus:route?routeId=XXXX&action=stop&async=true")