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

yyhrrdl8  于 2022-11-07  发布在  Apache
关注(0)|答案(2)|浏览(176)

我想在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);
tez616oj

tez616oj1#

另一个解决方法是这样做一个简单的表达式:

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

这与您的解决方案相当,但我个人觉得语法更简单,更容易理解。另外,将aggregationStrategy放在单独的一行上也使其更具可读性。

s5a0g9ez

s5a0g9ez2#

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

相关问题