@Retryable with exceptionExpression不会设置任何#root对象,也不会设置任何变量

我在SpringBatch的库依赖项中使用带有@Retryable批注的Spring Retry 1.2.4。

exceptionExpression属性中,我指定了自定义异常的表达式#root.status.is5xxServerError(),为此我在include属性中提到了该类。

但是以下消息会导致错误:

  

org.springframework.retry.RetryException:处理时恢复程序中的不可跳过的异常;嵌套异常是org.springframework.expression.spel.SpelEvaluationException:EL1001E:类型转换问题,无法从java.lang.String转换为java.lang.Boolean

我发现奇怪的是,如果在最终消息中查看“处理时恢复程序中不可跳过的异常”,则批次faultTolerant配置似乎与库配置冲突。 / p>

在Spel表达式评估中进行调试时,尽管它试图解析#root.status.is5xxServerError(),但我注意到没有root对象,在EvaluationContext中也没有设置任何变量。也许与上面的观察有关。

感谢帮助

supportjj 回答:@Retryable with exceptionExpression不会设置任何#root对象,也不会设置任何变量

这些注释中的表达支持非常基础。

我最近打开了GitHub issue来添加改进(运行时评估等)。

本文链接:https://www.f2er.com/3150069.html

大家都在问