После обновления с Camel 2.1 до 2.17 и некоторой модификации кода у нас возникли некоторые проблемы с обработкой исключений в Camel.Мы отправляем сообщение из приложения A в приложение B. Счастливый поток работает нормально, а несчастный поток - нет.
Мы отправляем сообщение, чтобы вызвать исключение, но оно неправильно обрабатывается в блоке onexception
.
На самом деле, мы видим следующий след: ProcessTaskEx - message received
, но я не вижу: ProcessTaskEx - exception
Исключение, которое мы получаем от Camel:
camel exchange failed without an exception: <SOAP-ENV:Fault xmlns:SOAP-ENV>
Наш маршрут выглядит следующим образом, есть идеи, в чем проблема?Большое спасибо за ваше время сообщества!:)
<?xml version="1.0" encoding="ASCII"?>
<routes xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="switchyard://ProcessTaskEx"/>
<log message="ProcessTaskEx - message received: ${body}" loggingLevel="DEBUG" logName="WebServiceQueues" />
<to uri="switchyard://RequestCapacity"/>
<onException>
<exception>java.lang.Exception</exception>
<exception>webservicequeues.utilities.WebServiceQueueException</exception>
<log message="ProcessTaskEx - exception" loggingLevel="DEBUG" logName="WebServiceQueues" />
<redeliveryPolicy maximumRedeliveries="2" redeliveryDelay="60000" maximumRedeliveryDelay="900000" retriesExhaustedLogLevel="INFO" retryAttemptedLogLevel="INFO"/>
<handled>
<constant>true</constant>
</handled>
<log message="Failed after Retry.Sending ProcessTask Request to Error Queue" loggingLevel="ERROR" logName="WebServiceQueues" />
<to uri="switchyard://ErrorProcessTaskExQueue"/>
</onException>
</route>
</routes>