2013-09-04 4 views
1

В Mule Я использую стратегию исключения catch, на которую ссылается «сложный» поток. Я поместил компонент jdbc в стратегию исключения, чтобы обновить запись таблицы в случае ошибки Как я могу получить доступ к трассе стека исключений, чтобы зарегистрировать ее в этой таблице? Я проверил полезную нагрузку в начале стратегии исключения и имел тип org.apache.commons.httpclient.methods.PostMethod Фактически, я получил ошибку во время HTTP-вызова.Mule - Обработка ошибок

ответ

3

В исключении исключение исключений не доступно в полезной нагрузке. Он доступен в переменной exceptionPayload объекта Message. .

Применение

Исключение Исключение = (Исключение) message.getExceptionPayload() getException();

Это дает объект ExceptionPaylaod, метод getException() предоставляет объект исключения.

Чтобы получить трассировку стека, используйте следующее.

StackTraceElement[] ste = exception.getCause().getStackTrace(); 

Оттуда вы можете продолжить поиск в соответствии с вашими нуждами.

Надеюсь, это поможет.

+0

Спасибо, это полезно. Я получаю сообщение исключения Mule, которое не содержит трассировку java-стека, которую я вижу на консоли (трассировка стека Root Exception: java.net.UnknownHostException). Есть ли способ получить это? – user1820620

+2

Кроме того, в MEL текущее исключение связано с переменной 'exception'. –

+0

Обновлен ответ с решением для получения StackTrace. – user1760178

Смежные вопросы