You're right - it should be:

        <from uri="direct:errorHandlerRoute"/> 

And not

        <from ref="direct:errorHandlerRoute"/>

Many thanks again

Steven Hedges
IT - Credit Booking Derivs


-----Original Message-----
From: Claus Ibsen [mailto:claus.ib...@gmail.com] 
Sent: 29 September 2010 10:18
To: users@camel.apache.org
Subject: Re: Exception details

Just use "direct:errorHandlerRoute" instead of ref:direct:errorHandlerRoute

On Wed, Sep 29, 2010 at 10:49 AM,  <steve.hed...@barclayscapital.com> wrote:
> Claus
>
> This is the relevant (more complete) extract of the spring config:
>
>
>        <errorHandler id="loggingErrorHandler" type="LoggingErrorHandler"
>                level="INFO" 
> xmlns="http://camel.apache.org/schema/spring"; />
>
>        <errorHandler id="errorHandler" type="DeadLetterChannel"
>                deadLetterUri="direct:errorHandlerRoute" />
>
>        <camelContext id="camel" 
> xmlns:stp="http://www.barcap.com/gcd/stpengine/1-0";>
>
>                <template id="camelTemplate" />
>
>                <endpoint id="JMS_IN" uri="jms:queue:${input.queue}" />
>                <endpoint id="JMS_OUT" uri="jms:queue:${output.queue}" 
> />
>                <endpoint id="JMS_ERROR" uri="jms:queue:${error.queue}" 
> />
>
>
>                <route>
>                        <from ref="direct:errorHandlerRoute"/>
>                        <log message="RAISED EXCEPTION: ${exception}" 
> loggingLevel="ERROR"/>
>                        <to ref="JMS_ERROR"/>
>                </route>
>
>                <route id="compression-workflow" 
> errorHandlerRef="errorHandler">
>                        <from ref="JMS_IN" />
>
> ...
>
> Execution gives the following error:
>
> INFO: Apache Camel 2.5-SNAPSHOT (CamelContext: camel) is shutdown in 
> 0.016 seconds Exception in thread "main" 
> org.apache.camel.RuntimeCamelException: 
> org.apache.camel.FailedToCreateRouteException: Failed to create route 
> route1: Route[[From[ref:direct:errorHandlerRoute]] -> [Log[RAISED 
> EX... because of No endpoint could be found for: 
> ref:direct:errorHandlerRoute, please check your camel registry with id 
> direct:errorHandlerRoute
>        at 
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHel
> per.java:1133)
>        at 
> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCa
> melContext.java:103)
>        at 
> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(Cam
> elContextFactoryBean.java:236)
>        at 
> org.springframework.context.event.SimpleApplicationEventMulticaster.mu
> lticastEvent(SimpleApplicationEventMulticaster.java:97)
>        at 
> org.springframework.context.support.AbstractApplicationContext.publish
> Event(AbstractApplicationContext.java:303)
>        at 
> org.springframework.context.support.AbstractApplicationContext.finishR
> efresh(AbstractApplicationContext.java:911)
>        at 
> org.springframework.context.support.AbstractApplicationContext.refresh
> (AbstractApplicationContext.java:428)
>        at 
> org.springframework.context.support.ClassPathXmlApplicationContext.<in
> it>(ClassPathXmlApplicationContext.java:139)
>        at 
> org.springframework.context.support.ClassPathXmlApplicationContext.<in
> it>(ClassPathXmlApplicationContext.java:93)
>        at 
> com.barcap.gcdit.compressionworkflow.CompressionWorkflow.<init>(Compre
> ssionWorkflow.java:20)
>        at 
> com.barcap.gcdit.compressionworkflow.CompressionWorkflow.main(Compress
> ionWorkflow.java:16) Caused by: 
> org.apache.camel.FailedToCreateRouteException: Failed to create route 
> route1: Route[[From[ref:direct:errorHandlerRoute]] -> [Log[RAISED 
> EX... because of No endpoint could be found for: 
> ref:direct:errorHandlerRoute, please check your camel registry with id 
> direct:errorHandlerRoute
>        at 
> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:
> 179)
>        at 
> org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelConte
> xt.java:607)
>
>
> My theory is that the errroHandler (which is defined outside the 
> camelContext) cannot refer to a route (which is defined inside the 
> camelContext).  Given that you said this was straightforward using the 
> Java DSL, does this mean the Spring XML is weaker/deficient?  Or have 
> I hust made some obvois blatant error?  (Latter is by far the most 
> likely.)
>
>
> Thanks
>
> Steven Hedges
> IT - Credit Booking Derivs
>
>
> -----Original Message-----
> From: Claus Ibsen [mailto:claus.ib...@gmail.com]
> Sent: 28 September 2010 18:30
> To: users@camel.apache.org
> Subject: Re: Exception details
>
> You need to set the errorHandlerRef attribute on either the <camelContext> or 
> the <route> in which the error handler should apply.
>
>
>
> On Tue, Sep 28, 2010 at 6:14 PM,  <steve.hed...@barclayscapital.com> wrote:
>> Claus
>>
>> I am having difficulty with this as I am using the Spring XML config 
>> approach.  The errorHandler is defined outside of the camelContext while the 
>> routes are defied inside the camel context.  At the point at which the 
>> errorHandler is instantiated it cannot see the error route.
>>
>> So I have:
>>
>>        <errorHandler id="errorHandler" type="DeadLetterChannel"
>>                deadLetterUri="direct:errorHandlerRoute" />
>>
>> And
>>
>>        <camelContext id="camel"
>> xmlns:stp="http://www.barcap.com/gcd/stpengine/1-0";>
>> ...
>>
>>                <route id="errorHandlerRoute">
>>
>>                        <log message="RAISED EXCEPTION: ${exception}"
>> loggingLevel="ERROR"/>
>>                        <to ref="JMS_ERROR"/>
>>                </route>
>>
>> ...
>> />
>>
>> I'm guessing that this would not be a problem using the Java DSL.  But I 
>> really don't want to use that approach.  (From a commercial point of view, 
>> ease of writing code in no way outweighs the advantages of having XML 
>> configs that can be read by support staff at 2am).
>>
>> Your continuing help is much appreciated
>>
>>
>> Steven Hedges
>> IT - Credit Booking Derivs
>>
>>
>> -----Original Message-----
>> From: Claus Ibsen [mailto:claus.ib...@gmail.com]
>> Sent: 28 September 2010 16:35
>> To: users@camel.apache.org
>> Subject: Re: Exception details
>>
>> On Tue, Sep 28, 2010 at 5:27 PM,  <steve.hed...@barclayscapital.com> wrote:
>>> You realise I am going to have to get my 50 c of help now :-)
>>>
>>> Is it possible to use a route as an error handler?  I would like to be able 
>>> to log an exception, raise an SMS and push the message onto a queue for 
>>> later reprocessing.  We are trying to keep all of our config in the Spring 
>>> XML.  (Config file releases are much simpler admin-wise than code releases).
>>>
>>
>> Yeah use the DeadLetterChannel and set the endpoint to a 
>> direct:myRoute
>>
>> And then define a route with from("direct:myRoute") and its just like any 
>> other route.
>>
>>
>>>
>>> Steven Hedges
>>> IT - Credit Booking Derivs
>>>
>>> -----Original Message-----
>>> From: Claus Ibsen [mailto:claus.ib...@gmail.com]
>>> Sent: 28 September 2010 16:13
>>> To: users@camel.apache.org
>>> Subject: Re: Exception details
>>>
>>> On Tue, Sep 28, 2010 at 3:46 PM,  <steve.hed...@barclayscapital.com> wrote:
>>>> I've bought the book!
>>>>
>>>
>>> Ah great. Then Jonathan and I earned 50 cent today.
>>>
>>> I hope the book will help and inspire you with your current endeavor with 
>>> Camel. Good luck.
>>>
>>>>
>>>>
>>>> Steven Hedges
>>>> IT - Credit Booking Derivs
>>>>
>>>> 10 The South Colonnade
>>>> Canary Wharf,
>>>> London E14 4PU,
>>>> United Kingdom
>>>>
>>>> 02031344655
>>>> x44655
>>>>
>>>> -----Original Message-----
>>>> From: Claus Ibsen [mailto:claus.ib...@gmail.com]
>>>> Sent: 28 September 2010 14:33
>>>> To: users@camel.apache.org
>>>> Subject: Re: Exception details
>>>>
>>>> On Tue, Sep 28, 2010 at 3:26 PM,  <steve.hed...@barclayscapital.com> wrote:
>>>>> I'll get the book...
>>>>>
>>>>> From the info on that page, is it correct to assume that it is impossible 
>>>>> to get at the exception info from the Spring XML config?  All I want to 
>>>>> do is to log the actual exception to a file.
>>>>>
>>>>
>>>> The simple language can access the caused exception using 
>>>> $exception See simple http://camel.apache.org/simple
>>>>
>>>> Something like this:
>>>>
>>>> onException(Exception.class).handled(true).transform(simple("Damn
>>>> the problem is $exception.message and 
>>>> stacktrace\n$exception")).to("file:errors");
>>>>
>>>> But reading the entire chapter 5 about error handling will help you 
>>>> understand some of the many features it provides.
>>>> The wiki pages is a bit of a mess here and there for error handling as its 
>>>> a hard topic to document well.
>>>>
>>>>
>>>>>
>>>>>
>>>>> Steven Hedges
>>>>> IT - Credit Booking Derivs
>>>>>
>>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: Claus Ibsen [mailto:claus.ib...@gmail.com]
>>>>> Sent: 28 September 2010 14:09
>>>>> To: users@camel.apache.org
>>>>> Subject: Re: Exception details
>>>>>
>>>>> On Tue, Sep 28, 2010 at 2:49 PM,  <steve.hed...@barclayscapital.com> 
>>>>> wrote:
>>>>>> Hi
>>>>>>
>>>>>> This is probably very straightforward, but I've scoured the docs and 
>>>>>> can't find an answer.
>>>>>>
>>>>>> Is it possible to get details of the actual exception that 
>>>>>> occurred in an error handler?  So far, I can see how to access 
>>>>>> the message that caused an error (using the $body variable) but 
>>>>>> not the exception itself
>>>>>>
>>>>>
>>>>> Yeah if you got the Camel in Action book, see section 5.4.4
>>>>>
>>>>> And you can find also some details about it here 
>>>>> http://camel.apache.org/exception-clause.html
>>>>>
>>>>> see section _Using a processor as failure handler_
>>>>>
>>>>>> Thanks in advance
>>>>>>
>>>>>>
>>>>>> Steven Hedges
>>>>>> IT - Credit Booking Derivs
>>>>>>
>>>>>> 10 The South Colonnade
>>>>>> Canary Wharf,
>>>>>> London E14 4PU,
>>>>>> United Kingdom
>>>>>>
>>>>>> 02031344655
>>>>>> x44655
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>>
>>>>>> This e-mail may contain information that is confidential, privileged or 
>>>>>> otherwise protected from disclosure. If you are not an intended 
>>>>>> recipient of this e-mail, do not duplicate or redistribute it by any 
>>>>>> means. Please delete it and any attachments and notify the sender that 
>>>>>> you have received it in error. Unless specifically indicated, this 
>>>>>> e-mail is not an offer to buy or sell or a solicitation to buy or sell 
>>>>>> any securities, investment products or other financial product or 
>>>>>> service, an official confirmation of any transaction, or an official 
>>>>>> statement of Barclays. Any views or opinions presented are solely those 
>>>>>> of the author and do not necessarily represent those of Barclays. This 
>>>>>> e-mail is subject to terms available at the following link: 
>>>>>> www.barcap.com/emaildisclaimer. By messaging with Barclays you consent 
>>>>>> to the foregoing.  Barclays Capital is the investment banking division 
>>>>>> of Barclays Bank PLC, a company registered in England (number 1026167) 
>>>>>> with its registered office at 1 Churchill Place, London, E14 5HP.  This 
>>>>>> email may relate to or be sent from other members of the Barclays Group.
>>>>>> _______________________________________________
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Claus Ibsen
>>>>> Apache Camel Committer
>>>>>
>>>>> Author of Camel in Action: http://www.manning.com/ibsen/ Open 
>>>>> Source
>>>>> Integration: http://fusesource.com
>>>>> Blog: http://davsclaus.blogspot.com/
>>>>> Twitter: http://twitter.com/davsclaus
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/ Open 
>>>> Source
>>>> Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>
>>>
>>>
>>> --
>>> Claus Ibsen
>>> Apache Camel Committer
>>>
>>> Author of Camel in Action: http://www.manning.com/ibsen/ Open Source
>>> Integration: http://fusesource.com
>>> Blog: http://davsclaus.blogspot.com/
>>> Twitter: http://twitter.com/davsclaus
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/ Open Source
>> Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Author of Camel in Action: http://www.manning.com/ibsen/ Open Source 
> Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/ Open Source 
Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to