在camel 2.14中出现选项aggregateOnException
以强制aggregate()
调用。
但我们使用2.8版。
在我的情况下这样的代码
from("some_route").routeId("enrich")
.enrich("some_resource_with_useful_info", MyAggregator())
.multicast().stopOnException()
.to("first_client", "second_client");
可能会在"some_resource_with_useful_info"
失败,我希望骆驼不要在aggregate()
中调用MyAggregator
。但它确实调用并发生了第二个异常。
还配置了onException。
onException(Exception.class).handled(true).useOriginalMessage()
.to(ERROR_LOGGING_ENDPOINT).end();
答案 0 :(得分:1)
您可以在MyAggregator
中检测异常并将其传播到oldExchange,以便Camel错误处理程序可以做出反应。
做了很长时间的事情
if (newExchange.getException() != null) {
oldExchange.setException(newExchange.getException());
return oldExchange;
}