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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Apache Camel Aggregator关联中加入多个标头相关的知识,希望对你有一定的参考价值。

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

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

另一答案

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

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

这相当于您的解决方案,但我个人觉得语法更简单,更容易理解。

以上是关于如何在Apache Camel Aggregator关联中加入多个标头的主要内容,如果未能解决你的问题,请参考以下文章

Apache Camel:如何存储变量以供以后使用

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

如何在 Apache Camel 中定义要通过 ref 抛出的异常

如何解决 java.lang.NoClassDefFoundError: org/apache/camel/impl/DefaultComponent?

如何在 Apache Camel 中检测损坏/恢复的 JMS 连接?

Apache Camel使用spring DSL比较字符串与引号,如何逃脱?