0

我对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>

提前致谢!

4

1 回答 1

0

您需要做的是为聚合器提供一个实现AggregationStrategy- 这是一个告诉模式如何组装两个匹配的对象的类correllationExpression。有关如何执行此操作的示例,请参见Camel Aggregator 。

于 2013-06-20T09:09:53.180 回答