如何在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 Aggregator关联中加入多个标头
如何在 Apache Camel 中定义要通过 ref 抛出的异常
如何解决 java.lang.NoClassDefFoundError: org/apache/camel/impl/DefaultComponent?