Hello,
I tried the Below error Handling using DeadLetterChannel , but
currently I am not getting the exception or error in my processor . I want
to log in DB the message along with the reason it failed , for example JDBC
exception, Null pointer exception , data Validation exception in some
method etc.
<bean id="myErrorHandler"
class="org.apache.camel.builder.DeadLetterChannelBuilder">
<property name="deadLetterUri" value="direct:myErrorRoute"/>
<property name="redeliveryPolicy"
ref="myRedeliveryPolicyConfig"/>
</bean>
<bean id="myRedeliveryPolicyConfig"
class="org.apache.camel.processor.RedeliveryPolicy">
<property name="maximumRedeliveries" value="1"/>
<property name="redeliveryDelay" value="5000"/>
<property name="allowRedeliveryWhileStopping" value="false"/>
</bean>
<!-- Error Handler Generic one -->
<route customId="false" id="myErrorRoute" xmlns="
http://camel.apache.org/schema/spring">
<from uri="direct:myErrorRoute"/>
<process ref="CustomErrorProcessor"/>
<to uri="mock:end"/>
</route>
In the Error Processor is called proper on Exception, But I dont get an
Exception from exchange object nor Fault from the message object.
i tried the below flags too. exchange.isFailed() and message.isFault()
but returned false. While in the Logs I can see the exception printed
2015-08-10 12:19:19,218 [read #8 - Split] DEBUG
DeadLetterChannel - Failed delivery for (MessageId:
ID-DEACR002901-62175-1439201946611-0-1 on ExchangeId:
ID-DEACR002901-62175-1439201946611-0-10). On delivery attempt: 0 caught:
java.lang.NullPointerException
Failed delivery for (MessageId: ID-DEACR002901-62175-1439201946611-0-1 on
ExchangeId: ID-DEACR002901-62175-1439201946611-0-14). On delivery attempt:
1 caught: java.lang.NullPointerException
How do I get the Origin of the exception in my errorprocessor.
regards,
Felix T