ルート内でアグリゲーターも含む onException 句を使用しようとしています。アグリゲーターの aggregate() メソッド内で例外がスローされるたびに、OnException 句がそれをキャッチして処理し、再配信する必要があると予想していました。しかし、それは起こっていないようです。誰でも私が間違っているところを提案してもらえますか?
from("jms:queue:start?concurrentConsumers=10").routeId("testRoute")
.onException(Exception.class).log("Exception caught").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
logger.debug("****Exception caught***");
}
})
.handled(true).maximumRedeliveries(-1).end()
.transacted()
.aggregate(header("correlationHeader"), new CustomAggregator())
.completionSize(50).
to("jms:queue:end");
ここで、CustomAggregator はアグリゲーターであり、その集計メソッド内で例外処理をテストするために例外をスローしています。
任意のヘルプや提案をいただければ幸いです。