I'm now working off 2.6-SNAPSHOT.

To get around the onException/aggregate.groupBy DSL warning AND put the
onException at the start of the route, I moved the actual send to the web
service to it's own route. Unfortunately, I don't seem to be able to trigger
the onException handling while testing the route. The global error handler
kicks in after the 5 retries it is configured for.

Am I doing something wrong with my onException configuration in the route?
The code is below.

Thanks,

-john

    errorHandler(deadLetterChannel("direct:emailSupport")
        .maximumRedeliveries(5)
        .redeliveryDelay(1000)
        .backOffMultiplier(2)
        .retryAttemptedLogLevel(LoggingLevel.WARN));

    from("direct.sendToWs")
        .routeId("sendToWs")
       
.onException(java.net.ConnectException.class).maximumRedeliveries(-1).redeliveryDelay(30000).end()
        .to("http:host//some_ws");

In my test I created an interceptor like:

    Predicate p1 = header(Exchange.REDELIVERY_COUNTER).isLessThan(7);
    Predicate p =
PredicateBuilder.or(header(Exchange.REDELIVERY_COUNTER).isNull(), p1);
                
    interceptSendToEndpoint("http*")
        .skipSendToOriginalEndpoint()
        .choice()
            .when(p)
                .process(new Processor()
                {
                    public void process(Exchange exchange) throws Exception
                    {
                        System.out.println("---------------- throw
ConnectException");
                        throw new java.net.ConnectException();
                    }
                })
            .otherwise()
                .log("--------------- sending it on")
                .to(postingAcceptWsEndpoint);

-- 
View this message in context: 
http://camel.465427.n5.nabble.com/route-scoped-onException-tp3300994p3308494.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to