The caused exception is stored as a property on the Exchange using the key Exchange.EXCEPTION_CAUGHT
On Wed, Aug 31, 2011 at 10:00 AM, aum.struts <aum.str...@gmail.com> wrote: > Hi All, > > While working with Camel i have a requirement where i need to validate an > XML with a given XSD and in case of validation faliure need to stop the > process and notify user about valdation failed > > First part is working fine for the validation as i am using camel out of the > box validator > and i have declared a global Exception handler in my spring.xml file with > the following entry > > <onException useOriginalMessage="true"> > <exception>org.apache.camel.ValidationException</exception> > <exception>org.xml.sax.SAXParseException</exception> > > <exception>org.apache.camel.processor.validation.SchemaValidationException</exception> > <exception>java.lang.Exception</exception> > <handled> > <constant>false</constant> > </handled> > <process ref="exceptionHandler"/> > to uri="file://data/failed" / > </onException> > > where exceptionHandler is my custom Exceptionhandler > > public class AdapterExceptionHandler implements Processor { > > IAdapterManager adapterManager; > > public void setAdapterManager(IAdapterManager adapterManager) { > this.adapterManager = adapterManager; > } > > public void process(Exchange exchange) throws Exception { > ExceptionBean exeB = new ExceptionBean(); > System.out.println(exchange.getProperty("************ > "+Exchange.EXCEPTION_CAUGHT,Throwable.class)); > exeB.setExceptionObj(exchange.getException()); > System.out.println("Excahange > adapterManager---------"+adapterManager); > ManagerStateBean mgrStateBean = null; > if (adapterManager.getAdapterMgrState() != null) { > mgrStateBean=adapterManager.getAdapterMgrState(); > }else{ > mgrStateBean = new ManagerStateBean(); > } > > mgrStateBean.setExecutionStatus(AdapterConstants.ExceptionOccurred); > mgrStateBean.setExceptionData(exeB); > adapterManager.setAdapterMgrState(mgrStateBean); > } > > But when validation getting failed camel is giving the control back to > AdapterExceptionHandler but Exchange is coming as null since when i am > trying to fetch exception object from it it is coming as null > > though on the console it is showing the DefaultErrorHandler is handling the > exception but i am clueless how i can forward the exception to my > "AdapterExceptionHandler " > > here is the console output > > [thread #1 - file://data/input/] DefaultValidationErrorHandler DEBUG > Validation error: org.xml.sax.SAXParseException: cvc-complex-type.2.4.b: The > content of element 'record' is not complete. One of '{element}' is expected. > org.xml.sax.SAXParseException: cvc-complex-type.2.4.b: The content of > element 'record' is not complete. One of '{element}' is expected. > at > com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown > Source)[:1.6.0_26] > > [thread #1 - file://data/input/] DefaultErrorHandler DEBUG Failed > delivery for exchangeId: ID-snsln-045-51580-1314777491191-0-28. On delivery > attempt: 0 caught: > org.apache.camel.processor.validation.SchemaValidationException: Validation > failed for: > com.sun.org.apache.xerces.internal.jaxp.validation.SimpleXMLSchema@1d2b8e > errors: [org.xml.sax.SAXParseException: cvc-complex-type.2.4.b: The content > of element 'record' is not complete. One of '{element}' is expected., > org.xml.sax.SAXParseException: cvc-complex-type.2.4.b: The content of > element 'record' is not complete. One of '{element}' is expected., > org.xml.sax.SAXParseException: cvc-complex-type.2.4.b: The content of > element 'record' is not complete. One of '{element}' is expected.]. > Exchange[null] > Excahange INNNNNNNNNNNnull > Excahange INNNNNNNNNNNCamelFailureEndpoint > Excahange INNNNNNNNNNNCamelFailureHandled > null > null > > can any one help me out how can i pass the Exception to my > "AdapterExceptionHandler" > > Thanks in advance > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Error-Handling-In-Camel-tp4753284p4753284.html > Sent from the Camel - Users mailing list archive at Nabble.com. > -- Claus Ibsen ----------------- 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/