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.

Reply via email to