Hi Willem

I have included part of the Camel XML and my ExceptionResponse class below. 
One of the routes works as expected and one of them does not.  
Further debuging shows that the one that works gets a
org.apache.camel.component.jms.JmsMessage
And the one that is not working is getting a
org.apache.camel.impl.DefaultMessage.



   <bean id="exceptionResponse"
class="gov.nmcourts.ecitation.busrules.ExceptionResponse" />

    
    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>


        
        <route id="EFileBatchRequestValidate" trace="true">
            <from uri="properties:{{queue.efilebatch.request}}" />
            <to uri="properties:{{log.efilebatch.request}}" />
            <setHeader headerName="JMSCorrelationID">
                <simple>${header.JMSMessageID}</simple>
            </setHeader>
            
            <doTry>
                <to id="tracsValidator"
uri="properties:{{validator.efilebatch.TRACSEFileBatch}}" />
                <to
uri="properties:{{queue.efilebatch.request.validatedtracsxsd}}" />
                <wireTap uri="properties:{{queue.efilebatch.request.tap}}"
/>
                <doCatch>
                    
                    <exception>org.xml.sax.SAXParseException</exception>
                   
<exception>org.apache.camel.ValidationException</exception>
                    <bean ref="exceptionResponse" method="respond" />
                    <to
uri="properties:{{queue.efilebatch.request.rejected}}" />
                    <to uri="properties:{{queue.efilebatch.response}}" />
                </doCatch>
            </doTry>
        </route>


        
        <route id="EFileBatchBusinessRulesRequestCheck">
           <from uri="properties:{{queue.efilebatch.request.transformed}}"
/>

               
               <bean ref="orderChargesTransformation" method="transform" />
               
               <bean ref="fileDateTransformation" method="transform" />
               
               <bean ref="chargeLookupTransformation" method="transform" />
                       
               
               <bean ref="busRuleSameCiteeValidation" method="validate" />
               <to
uri="properties:{{queue.efilebatch.request.validatedxsdbusrules}}" />
            
            
            <onException useOriginalMessage="true">
               
<exception>gov.nmcourts.ecitation.busrules.exception.BusinessRuleValidationException</exception>
                <handled><constant>true</constant></handled>
                <bean ref="exceptionResponse" method="respond" />
                <to
uri="properties:{{queue.efilebatch.request.busrulerejected}}" />
                <to uri="properties:{{queue.efilebatch.response}}" />
            </onException> 
                   
            
            <onException useOriginalMessage="true">
           
<exception>gov.nmcourts.ecitation.busrules.exception.BusinessRuleProcessingException</exception>
                <handled><constant>true</constant></handled>
                <bean ref="exceptionResponse" method="respond" />
                <to uri="properties:{{queue.efilebatch.request.rejected}}" />
                <to uri="properties:{{queue.efilebatch.response}}" />
            </onException>                 
        </route>


public class ExceptionResponse {
        
        private static Logger log = Logger.getLogger(ExceptionResponse.class);
        
        private static final String JMS_CORRELATION_ID = "JMSCorrelationID";
        private static final String CAUSE_IS = " CAUSE IS: ";
        
        public void respond(Exchange exchange) {
                
                ReceiptList receiptList = new ReceiptList();
                receiptList.setAdvisoryExceptionMessage(true);
                receiptList.setDateSubmitted( new Date() );
                
                org.apache.camel.Message inMsg = exchange.getIn();      
        
                if(log.isDebugEnabled()) log.debug("&&& got message of type: " +
inMsg.getClass().getName());
                
                Exchange inMsgExchange = inMsg.getExchange();
                
                String jmsCorrelationId = null;
                jmsCorrelationId = (String) inMsg.getHeader(JMS_CORRELATION_ID);
                if(log.isDebugEnabled()) log.debug("&&&
inMsg.getHeader(JMS_CORRELATION_ID) is: " + jmsCorrelationId  );
                
                receiptList.setJmsMessageID( jmsCorrelationId );
                
                Exception exception = (Exception)
inMsg.getExchange().getProperty(Exchange.EXCEPTION_CAUGHT);
                if( exception != null )
                {
                        StringBuilder sb = new StringBuilder();
                        sb.append( exception );
                        if( exception.getCause() != null )
                        {
                                sb.append( CAUSE_IS );
                                sb.append( exception.getCause() );
                        }
                        receiptList.setException( sb.toString() );
                }
                
                receiptList.setCamelRoute( exchange.getFromRouteId() );
                receiptList.setMessageBody( (String) exchange.getIn().getBody() 
);
                
                exchange.getOut().setBody( receiptList.toXml() );
                
        }

}

--
View this message in context: 
http://camel.465427.n5.nabble.com/Missing-properties-on-exception-tp4775029p4778846.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to