Java 当骆驼分割中发生异常时,如何获取GroupedExchange?
我在camel split()路由中有一个聚合策略Java 当骆驼分割中发生异常时,如何获取GroupedExchange?,java,apache-camel,spring-camel,Java,Apache Camel,Spring Camel,我在camel split()路由中有一个聚合策略 from(“直接:拆分”) .split() .method(新的SplitBean(),“splitMessage”) .aggregationStrategy(AggregationStrategies.groupedExchange()) .stopOnException() .至(“直接:目的地”) .end(); splitMessage方法已将数据拆分为3个请求数据。因此,我命中http目标端点3次 使用聚合策略,我的http响应
from(“直接:拆分”)
.split()
.method(新的SplitBean(),“splitMessage”)
.aggregationStrategy(AggregationStrategies.groupedExchange())
.stopOnException()
.至(“直接:目的地”)
.end();
splitMessage方法已将数据拆分为3个请求数据。因此,我命中http目标端点3次
使用聚合策略,我的http响应头2次聚合
第三次http调用因异常而失败。返回给调用者的交换不包含前两个分组交换
在这种情况下,如何获得分组交换(成功、异常)
如果问题不清楚,请告诉我
from("direct:split")
.split()
.method(new SplitBean(), "splitMessage")
.aggregationStrategy(new ErrorStrategy())
.stopOnAggregateException()
.to("direct:destination")
.end();
}
public class ErrorStrategy implements CompletionAwareAggregationStrategy {
@Override
public void onCompletion(Exchange exchange) {
}
@Override
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
if (newExchange.getException() != null) {
return oldExchange;
}
if (oldExchange == null) {
....
return newExchange;
}
.....
return oldExchange;
}
}
它现在跳过了异常交换。但是我正在寻找的是应该捕获异常交换,并且应该停止剥离(通过StopOneException)。您有什么解决方法可以建议吗?这仍然是一个谜!