我对 activemq * 聚合器 *有疑问,如果有人能以某种方式帮助我,我将非常感激。编组成xml。
所以我的路线配置如下:
<route id="myRoute">
<from uri="timer:someScheduler?period=5000" />
<bean ref="someBean" method="someMethod" />
<marshal>
<jaxb contextPath="some package" />
</marshal>
<split streaming="true">
<tokenize token="@id" group="1000" />
<to uri="activemq:topic:some_topic" />
</split>
</route>
这可以工作,并且它会拆分由1k行组成的xml消息,不知道如何配置聚合器以便在处理之前将所有消息放在一起。
这是(不起作用):
<route id="myRoute">
<from uri="activemq:topic:some_Topic" />
<aggregate completionSize="5">
<correlationExpression>
<constant>true</constant>
</correlationExpression>
<to uri="mock:aggregated"/>
</aggregate>
<unmarshal>
<jaxb contextPath="some_package" />
</unmarshal>
<bean ref="someBean" method="someMethod" />
</route>
提前致谢!
答案 0 :(得分:0)
您需要做的是为聚合器提供AggregationStrategy
的实现 - 这是一个类,它告诉模式如何组合与correllationExpression
匹配的两个对象。有关如何执行此操作的示例,请参阅Camel Aggregator。