在包含聚合器的路由中使用OnException

时间:2014-03-24 10:22:37

标签: java exception-handling apache-camel onexception

我正在尝试在我的路由中使用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是我的聚合器,在其聚合方法中,我抛出一个Exception来测试我的异常处理。

任何帮助或建议都表示赞赏。

0 个答案:

没有答案