Thanks for your help in advance.
Route config as follows:
public void configure() throws Exception {
//@formatter:off
final String deadLetterUri =
String.format("%s:%s", ROUTING_SCHEME, GECKO_FAILURES_QUEUE);
onException(FailureException.class)
.handled(true)
.process(new Processor() {
@Override
public void
process(final Exchange exchange) throws Exception {
final FailureException exception = exchange.getProperty(EXCEPTION_CAUGHT,
FailureException.class);
final Message request = exchange.getIn();
log.error("Failure when sending, request: " + request, exception);
}
})
.to(deadLetterUri).end();
errorHandler(deadLetterChannel(deadLetterUri)
.maximumRedeliveries(0)
.retriesExhaustedLogLevel(LoggingLevel.ERROR)
.retryAttemptedLogLevel(LoggingLevel.WARN)
.log("com.blah.blah.Failure")
.loggingLevel(LoggingLevel.ERROR)
.logStackTrace(true)
.useOriginalMessage()
);
fromF(PRINT_REQUEST_QUEUE, ROUTING_SCHEME)
.noAutoStartup()
.id(ROUTE_ID)
.unmarshal()
.json(JsonLibrary.Jackson)
.setHeader("ClientId",
constant(this.clientId))
.setHeader("jobRequestType",
constant(getMode(currentMode).getRequestType()))
.setHeader("documentType",
constant(this.documentType))
.setHeader("documentVersion",
constant(this.documentVersion))
.to("freemarker:translator.ftl?contentCache=false")
.to("log:com.blah.blah.Transformer?level=DEBUG")
.to("validator:schema.xsd")
.to("log:com.blah.blah.Validator?level=DEBUG")
.to("freemarker:soap-translator.ftl?contentCache=false")
.to("log:com.blah.blah.SoapEnhancement?level=DEBUG")
// Send request
.to("someProcessor");
//@formatter:on
}
Notice the route is stopped by default, I then have another "timer" router
with processor attached to then enable/disable the route dependant on a
service call.
Thanks James.
On 14 January 2011 15:11, Claus Ibsen <[email protected]> wrote:
> Can you post your full route.
>
> And make sure you use .end() to denote the end of the onException if
> its route scoped.
>
>
> On Fri, Jan 14, 2011 at 2:49 PM, James Morgan <[email protected]>
> wrote:
> > Sorry camel version 2.5.0
> > On 14 Jan 2011 13:22, "Claus Ibsen" <[email protected]> wrote:
> >> Hi
> >>
> >> Please always detail the Camel version used. It matter a lot for
> >> people to help you.
> >>
> >> And always try using the latest released version to see if its fixed
> > there.
> >> And if possible the SNAPSHOT version as well.
> >> http://camel.apache.org/download
> >>
> >> Each Camel release has a lot of improvements and bug fixes.
> >>
> >> And post the full route, stack trace and what not if its still an issue.
> >>
> >>
> >>
> >> On Fri, Jan 14, 2011 at 1:59 PM, James Morgan <[email protected]
> >
> > wrote:
> >>> I have a working routing config, reasonably simple, just consumes from
> a
> >>> queue and does a little processing, it also has a a dead letter channel
> >>> defined.
> >>>
> >>>
> >>> I wanted to add an onException route for a specific exception which is
> >>> thrown from within a processor.
> >>>
> >>> Exception extends RuntimeException (not sure if this make a difference)
> >>>
> >>> When I add the below to catch this exception and do stuff with it, my
> > tests
> >>> now throw some weird exception.
> >>>
> >>> Exception I get is:
> >>>
> >>> *Caused by: org.apache.camel.CamelExchangeException: No consumers
> > available
> >>> on endpoint: Endpoint[direct://my-test-endpoint]*
> >>> *
> >>> *
> >>> As soon as I remove the onException route it passes.
> >>>
> >>> I've been playing this for afew hours, cant find anything that's wrong.
> > Even
> >>> when i print out the routes defined from in my test I see them all
> there?
> >>>
> >>> Do you have any idea what's wrong?
> >>>
> >>>
> >>> onException(CustomException.class)
> >>> .handled(true)
> >>> .process(new Processor() {
> >>> @Override
> >>> public void process(final Exchange exchange) throws Exception {
> >>> // do stuff
> >>> }
> >>> })
> >>> .to(deadLetterUri).end();
> >>>
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> FuseSource
> >> Email: [email protected]
> >> Web: http://fusesource.com
> >> Twitter: davsclaus
> >> Blog: http://davsclaus.blogspot.com/
> >> Author of Camel in Action: http://www.manning.com/ibsen/
> >
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: [email protected]
> Web: http://fusesource.com
> Twitter: davsclaus
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>