我是骆驼新手,所以我的确有很多问题。在我寻求帮助之前,我会尽量仔细研究这个问题。在这个问题上我找不到解决方案。这可能是关键词如此通用。在骆驼路线上时很复杂
我需要在路由上有条件。 (SOAP消息)在使用路由之前,标题中有两个字段必须是特定值。我如何指定
if(x == 1 and y == 2)
使用RouteBuilder?
我是骆驼新手,所以我的确有很多问题。在我寻求帮助之前,我会尽量仔细研究这个问题。在这个问题上我找不到解决方案。这可能是关键词如此通用。在骆驼路线上时很复杂
我需要在路由上有条件。 (SOAP消息)在使用路由之前,标题中有两个字段必须是特定值。我如何指定
if(x == 1 and y == 2)
使用RouteBuilder?
我认为你可以使用简单(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>
您可以使用谓词。实现谓词接口,并在选择中使用谓词。
from("direct:node1")
.choice()
.when(customPredicate)
.to("direct:node2");
谓词的定义与您的用例完全相同。谓词有助于使用谓词中嵌入的复杂逻辑进行路由决策。