【发布时间】:2021-07-28 06:22:34
【问题描述】:
我正在实现一个 Camel 路由,我需要在其中放置一个过滤器,然后再将消息处理重定向到一个端点或另一个取决于 routing slip 标头的端点。如下所示:
from("direct:a")
.routeId("a")
.choice()
.when(header("foo"))
.filter(body().isNotNull())
.routingSlip(header("my-slip"))
.endChoice()
.otherwise()
.log("header 'foo' was false")
.endChoice()
.end();
在尝试运行应用程序时出现以下异常:
java.lang.ClassCastException: class org.apache.camel.model.FilterDefinition cannot be cast to class org.apache.camel.model.ChoiceDefinition
任何解释为什么这不是一个合法的结构以及我应该如何编码我的路线以实现我想要的。根据我自己的观察,导致这种情况的是 choice() 构造。如果没有选择,在filter 之后添加routingSlip 构造就可以了。
提前感谢您的意见。
【问题讨论】:
标签: java apache-camel