@Retryable with exceptionExpression не устанавливает ни объекта #root, ни переменных - PullRequest
0 голосов
/ 06 ноября 2019

Я использую Spring Retry 1.2.4 с аннотацией @Retryable в зависимости библиотеки от SpringBatch.

В атрибуте exceptionExpression я указываю выражение #root.status.is5xxServerError() пользовательского исключения, для которогоЯ упоминаю класс в атрибуте include.

Но это приводит к ошибке со следующим сообщением:

org.springframework.retry.RetryException: не пропускаемое исключение ввосстановитель при обработке;вложенное исключение: org.springframework.expression.spel.SpelEvaluationException: EL1001E: проблема преобразования типов, невозможно преобразовать из java.lang.String в java.lang.Boolean

Что мне кажется странным, так это то, что пакетКонфигурация faultTolerant, кажется, конфликтует с конфигурацией библиотеки, если я посмотрю на «Не пропускаемое исключение в восстановителе при обработке» в окончательное сообщение.

Также при отладке в оценке выражения SpEL Iобратите внимание на отсутствие корневого объекта и переменных в EvaluationContext, хотя он пытается разрешить #root.status.is5xxServerError(). Возможно, это связано с наблюдением выше.

Спасибо за помощь

1 Ответ

1 голос
/ 06 ноября 2019

Поддержка выражений в этих аннотациях очень проста.

Недавно я открыл проблему GitHub для добавления улучшений (оценка времени выполнения и т. Д.).

...