Итак, у меня есть следующий маршрут (Верблюд 2.20.0)
Я работал над глобальным блоком <onException>
для нового маршрута.По какой-то причине он не был запущен, поэтому я переместил элементы в doTry / doCatch по одному конкретному маршруту, чтобы поиграть с обработкой ошибок.
<camelContext xmlns="http://camel.apache.org/schema/spring" id="jobfeedCamelContext">
<route id="testError">
<from uri="timer://runOnce?repeatCount=1&delay=5000" />
<doTry>
<throwException exceptionType="java.lang.Throwable"/>
<to uri="errorBean"/> <!-- bean does nothing but explicitly throws java.lang.Throwable -->
<doCatch>
<exception>java.lang.Throwable</exception>
<log message="### exception" />
</doCatch>
</doTry>
<log message="### out of try" />
</route>
</camelContext>
Для вывода я получаю трассировку стека от bean-компонентовjava.Lang.Throwable (но для <throwException exceptionType="java.lang.Throwable"/>
не генерируется трассировка стека. Я не получаю свою запись «### исключение» в любом сценарии, но я получаю запись «### из попытки»).
Использовали эту функциональность в других маршрутах на более старой версии верблюда, поэтому я не могу точно понять, где я иду не так. У кого-нибудь есть идеи? Я включил трассировку маршрутов, и ничего полезного нет.