如何在 Java DSL 路由中使用 Apache Camel 在 try catch 块中使用选择?
我有一种情况,我需要以下结构:
路线-->来自--> doTry-->选择-->何时-->简单-->到-->否则-->到-->enddoTry-->docatch-->到-->enddocatch- ->结束路线
截至目前,我尝试了以下几行:
.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")
Run Code Online (Sandbox Code Playgroud)
但我收到“找不到符号”错误docatch()
您能否建议在 Java DSL 的 try catch 块中使用“选择”的方法?
我需要一些有关更新 Apache Camel 中的交换属性的帮助。
用例:我有一个从 API 端点获取一些 Id 的路由,之后我需要从另一个端点获取每个 id 的信息。
我需要将响应保存在某处,以便稍后创建一些 JSON 数组。
有人可以给我一些具有类似用例的工作路线,或者只是为我指出正确的方向吗?
示例路线
from("direct:getIds") .setProperty("ValueToUpdate").constant("")
.to("endpontWhichReturns ids")
.split().jsonpath("$.Data") .log("${property.xrefCode}")
.toD("getInfoById) .log("${body}")
.choice() .when(header("CamelHttpResponseCode").isEqualTo("200"))
.setProperty("body").body()
.setProperty("updateBody",method("PrepareUpdate","prepare"))
.aggregate(property("ValueToUpdate"), new Aggreagation())
.to("direct:someEndpoint") .end() .to("mock:nestdo11");
Run Code Online (Sandbox Code Playgroud)