如何在Apache Camel Aggregator关联中加入多个标头

时间:2014-04-02 05:19:21

标签: apache-camel

我想在camel聚合器中读取多个标头。像这样的东西 - 标题(“h1”)和标题(“h2”)。这可能吗?

from(sourceQueueUrl)
    .aggregate(header("h1") and header("h2")  , new MyAggregationStrategy())
    .completionSize(3)
    .closeCorrelationKeyOnCompletion(2000)
    .log("Sending out ${body}")
    .aggregationRepository(repository)
    .to(sinkQueueUrl);

2 个答案:

答案 0 :(得分:0)

现在就开始工作了! header("h1").append(header("h2"))工作正常。

答案 1 :(得分:0)

另一种解决方案是制作一个这样的简单表达式:

from(sourceQueueUrl)
    .aggregate(simple("${header.h1}+${header.h2}"))
    .aggregationStrategy(new MyAggregationStrategy())
    .completionSize(3)
    .closeCorrelationKeyOnCompletion(2000)
    .log("Sending out ${body}")
    .aggregationRepository(repository)
    .to(sinkQueueUrl);

这相当于你的解决方案,但是我发现语法更简单,更容易理解。