2013-06-19 2 views
0

У меня есть проблема с ActiveMQ * агрегатор *, будет очень благодарностью, если кто-то поможет мне как-то. Маршалинг в xml.ActiveMQ Splitter/агрегатор, используя JMS транспорт

Так я мой маршрут настроен следующим образом:

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

Это работает, и это разбивает мои XML сообщение состоит из 1k строк, Тхо знаю, как настроить агрегатор для того, чтобы положить вместе все сообщения до proceding с их обработкой.

Это он (не работает):

<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

Что вам нужно сделать, так это предоставить агрегатору реализацию AggregationStrategy - это класс, который сообщает шаблону, как собрать два объекта, которые соответствуют correllationExpression. См. Camel Aggregator для примера того, как это сделать.

Смежные вопросы