On Sat, Apr 14, 2012 at 1:11 PM, Marco Mistroni <mmistr...@gmail.com> wrote: > Hello Claus, > sorry to bother, but i am still losing the plot with Exception Handling :( > i read Camel In action chapter, and this is what i came out with: > > <camel:route> > <camel:from uri="seda:processBloombergShares" /> > <camel:onException> > <camel:exception>java.lang.Exception</camel:exception> > <camel:handled> > <camel:constant>true</camel:constant> > </camel:handled> > <camel:to > uri="bean:exceptionHandler?method=handleException" /> > </camel:onException> > > <camel:process ref="bloombergProcessor" /> > <camel:bean ref="bloombergServiceActivator" method="fetchData" > /> > <camel:to uri="bean:endpointBean?method=handleBloombergShare" /> > > </camel:route> > > the BloombergProcessor is throwing an Exception , as in code b elow > public void process(Exchange exchange) throws Exception { > // TODO Auto-generated method stub > Set<String> set = new HashSet<String>(); > > set.add("BLOOMBERG-WMT"); > //set.add("BLOOMBERG-GE"); > > String portfolio = (String)exchange.getIn().getBody(); > > > > throw new Exception("Exception from Bloomberg PRocessor..."); > } > > this is the signature of my exception handler handleException method > > public void handleException(Map<?, ?> in, String payload, Map<String, > Object> out) { > LOGGER.info("-------Handling exceptions:"); > //exceptions.add(exception); > } >
When you bean have multiple parameters, you need to tell Camel what is what. See bean parameter binding for detaisl http://camel.apache.org/bean-binding.html And if you need the caused exception, you need to declare a Exception parameter. An alternative is just to use the Camel Exchange as a single parameter, but then your code imports Camel API. If you got a copy of Camel in Action then using beans with Camel is covered in chapter 4. You got of course the Apache documentation, link mentioned above, as well. > > But somehow that method is never called... > am i using the right signature? > what am i forgetting? > > w/kindest regards > marco > > > > > > > > > > On Thu, Apr 12, 2012 at 8:07 PM, Marco Mistroni <mmistr...@gmail.com> wrote: > >> thaks Claus for the useful advices >> >> rgds >> marco >> >> >> On Thu, Apr 12, 2012 at 8:40 AM, Claus Ibsen <claus.ib...@gmail.com>wrote: >> >>> On Wed, Apr 11, 2012 at 9:15 PM, Marco Mistroni <mmistr...@gmail.com> >>> wrote: >>> > Hello Claus >>> > thanks for the reply! >>> > mm i may be confusing the terminology sorry :( >>> > >>> > my camelapp consists of few routes. >>> > Most of the routes have as <camel:to >>> uri="bean:endpointBean?method=handle" >>> > /> >>> > >>> > i want to be able to handle exceptions in my endpointBean.... >>> > >>> >>> So you want to have endpointBean being invoked, calling the handle >>> method, when any exception occurs during processing messages in Camel? >>> >>> You can define an onException to do that >>> >>> Something a like. You can add before your routes in the XML file. >>> >>> <onException> >>> <exception>java.lang.Exception</exception> >>> <handled> >>> <constant>true</constant> >>> </handled> >>> <to uri="bean:endpointBean?method=handle"> >>> </onException> >>> >>> See more details here: >>> http://camel.apache.org/exception-clause.html >>> >>> >>> And if you got a copy of the Camel in Action book, I suggest to read >>> chapter 5, which is all about error handling. >>> >>> >>> > apart from the post below (i see you commented on that as well) are >>> there >>> > any other approaches to handle >>> > exceptions in endpoints? >>> > >>> > w/kindest regards >>> > marco >>> > >>> > >>> > >>> > On Wed, Apr 11, 2012 at 6:47 AM, Claus Ibsen <claus.ib...@gmail.com> >>> wrote: >>> > >>> >> On Tue, Apr 10, 2012 at 10:46 PM, Marco Mistroni <mmistr...@gmail.com> >>> >> wrote: >>> >> > Hello all >>> >> > i'd like to be able to handle exceptions at Endpoints in my app (as >>> most >>> >> > of the exceptions happen when endpoints are processing data). >>> >> > as i plan to deploy my camel app remotely, i'd like to handle the >>> >> exception >>> >> > so that an email with the exception is sent to me. >>> >> > >>> >> >>> >> Can you tell a bit more what you mean by your endpoints process data. >>> >> Its the consumer or producers of the endpoints that process data. >>> >> >>> >> > i found out this thread with regards to exception handling at >>> endpoints, >>> >> > and was wondering if any changes have been introduced in camel to >>> handle >>> >> > exception at endpoints since this post >>> >> > >>> >> > >>> >> >>> http://camel.465427.n5.nabble.com/Endpoint-exception-handling-td5504378.html >>> >> > >>> >> > w/kindest regards >>> >> > marco >>> >> >>> >> >>> >> >>> >> -- >>> >> Claus Ibsen >>> >> ----------------- >>> >> CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com >>> >> FuseSource >>> >> Email: cib...@fusesource.com >>> >> Web: http://fusesource.com >>> >> Twitter: davsclaus, fusenews >>> >> Blog: http://davsclaus.blogspot.com/ >>> >> Author of Camel in Action: http://www.manning.com/ibsen/ >>> >> >>> >>> >>> >>> -- >>> Claus Ibsen >>> ----------------- >>> CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com >>> FuseSource >>> Email: cib...@fusesource.com >>> Web: http://fusesource.com >>> Twitter: davsclaus, fusenews >>> Blog: http://davsclaus.blogspot.com/ >>> Author of Camel in Action: http://www.manning.com/ibsen/ >>> >> >> -- Claus Ibsen ----------------- CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/