我想拆分Exchange消息体(它是MyCustomClass对象的列表),处理它们(一个接一个),然后将所有的Exchange聚合在一起。拆分是可以的,一个接一个处理也可以,但我不知道如何聚合它们。
from("mysource")
.unmarshal(new ListJacksonDataFormat(MyClass.class))
.split().body()
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
// process MyClass item
exchange.getIn().setBody(processedItem);
}
})
.to("destinationForProcessedItem")
.aggregate(new GroupedExchangeAggregationStrategy()) <== Seems like problem is here
.process(new Processor() {
// handle result of aggregation
})
我不需要复杂的聚合,只是收集拆分的交换列表,并在最终的处理器中处理它们。
2条答案
按热度按时间83qze16e1#
在拆分器中使用内置聚合器,参见组合消息处理器EIP模式:https://camel.apache.org/components/latest/eips/composed-message-processor.html#_sample。
e3bfsja22#
这样写