我是Camel的新手所以我确实有很多问题。在我寻求帮助之前,我会尝试仔细研究这个问题。在这个问题上,我找不到解决方案。它可能是关键词如此通用。
我需要对路由有一个条件。 (SOAP消息)在使用路由之前,标题中有两个字段必须是特定值。我如何指定
if(x == 1 and y == 2)
使用RouteBuilder?
答案 0 :(得分:1)
我认为你可以使用Simple(http://camel.apache.org/simple)。您还可以查看谓词(http://camel.apache.org/predicate.html)。
在XML-DSL中,它看起来像:
<choice>
<when><simple>${header.x} == '1' && ${header.y} == '2'</simple>
<log message="do something with message"/>
</when>
<otherwise>
<log message="do something else"/>
</otherwise>
</choice>
答案 1 :(得分:0)
您可以使用谓词。实现谓词接口,并在选择中使用谓词。
from("direct:node1")
.choice()
.when(customPredicate)
.to("direct:node2");
谓词完全根据您的用例定义。谓词有助于使用嵌入在谓词中的复杂逻辑来制定路由决策。