В Mule Я использую стратегию исключения catch, на которую ссылается «сложный» поток. Я поместил компонент jdbc в стратегию исключения, чтобы обновить запись таблицы в случае ошибки Как я могу получить доступ к трассе стека исключений, чтобы зарегистрировать ее в этой таблице? Я проверил полезную нагрузку в начале стратегии исключения и имел тип org.apache.commons.httpclient.methods.PostMethod
Фактически, я получил ошибку во время HTTP-вызова.Mule - Обработка ошибок
1
A
ответ
3
В исключении исключение исключений не доступно в полезной нагрузке. Он доступен в переменной exceptionPayload объекта Message. .
Применение
Исключение Исключение = (Исключение) message.getExceptionPayload() getException();
Это дает объект ExceptionPaylaod, метод getException() предоставляет объект исключения.
Чтобы получить трассировку стека, используйте следующее.
StackTraceElement[] ste = exception.getCause().getStackTrace();
Оттуда вы можете продолжить поиск в соответствии с вашими нуждами.
Надеюсь, это поможет.
Спасибо, это полезно. Я получаю сообщение исключения Mule, которое не содержит трассировку java-стека, которую я вижу на консоли (трассировка стека Root Exception: java.net.UnknownHostException). Есть ли способ получить это? – user1820620
Кроме того, в MEL текущее исключение связано с переменной 'exception'. –
Обновлен ответ с решением для получения StackTrace. – user1760178