在Camel路线上很复杂

时间:2016-09-22 16:45:51

标签: java soap apache-camel

我是Camel的新手所以我确实有很多问题。在我寻求帮助之前,我会尝试仔细研究这个问题。在这个问题上,我找不到解决方案。它可能是关键词如此通用。

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

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

使用RouteBuilder?

2 个答案:

答案 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");

谓词完全根据您的用例定义。谓词有助于使用嵌入在谓词中的复杂逻辑来制定路由决策。