2016-09-22 103 views
0

我是骆驼新手,所以我的确有很多问题。在我寻求帮助之前,我会尽量仔细研究这个问题。在这个问题上我找不到解决方案。这可能是关键词如此通用。在骆驼路线上时很复杂

我需要在路由上有条件。 (SOAP消息)在使用路由之前,标题中有两个字段必须是特定值。我如何指定

if(x == 1 and y == 2) 

使用RouteBuilder?

回答

1

我认为你可以使用简单(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> 
0

您可以使用谓词。实现谓词接口,并在选择中使用谓词。

from("direct:node1") 
       .choice() 
        .when(customPredicate) 
         .to("direct:node2"); 

谓词的定义与您的用例完全相同。谓词有助于使用谓词中嵌入的复杂逻辑进行路由决策。