@Retryable with exceptionExpression 不设置任何#root 对象既不变量
@Retryable with exceptionExpression does not set any #root object neither variables
我在 Spring 批处理的库依赖项中使用 Spring 重试 1.2.4 和 @Retryable
注释。
在 exceptionExpression
属性中,我指定了自定义异常的表达式 #root.status.is5xxServerError()
,为此我在 include
属性中提到了 class。
但它会导致错误并显示以下消息:
org.springframework.retry.RetryException: Non-skippable exception in recoverer while processing; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1001E: Type conversion problem, cannot convert from java.lang.String to java.lang.Boolean
我觉得奇怪的是,批处理faultTolerant
配置似乎与库配置冲突,如果我看一下"Non-skippable exception in recoverer while processing"到最后的消息。
此外,在 SpEL 表达式求值中进行调试时,我注意到没有根对象,也没有在 EvaluationContext 中设置任何变量,尽管它正在尝试解析 #root.status.is5xxServerError()
。也许这与上面的观察有关。
感谢帮助
这些注释中的表达式支持非常基础。
我最近打开了一个 GitHub issue 以添加改进(运行时评估等)。
我在 Spring 批处理的库依赖项中使用 Spring 重试 1.2.4 和 @Retryable
注释。
在 exceptionExpression
属性中,我指定了自定义异常的表达式 #root.status.is5xxServerError()
,为此我在 include
属性中提到了 class。
但它会导致错误并显示以下消息:
org.springframework.retry.RetryException: Non-skippable exception in recoverer while processing; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1001E: Type conversion problem, cannot convert from java.lang.String to java.lang.Boolean
我觉得奇怪的是,批处理faultTolerant
配置似乎与库配置冲突,如果我看一下"Non-skippable exception in recoverer while processing"到最后的消息。
此外,在 SpEL 表达式求值中进行调试时,我注意到没有根对象,也没有在 EvaluationContext 中设置任何变量,尽管它正在尝试解析 #root.status.is5xxServerError()
。也许这与上面的观察有关。
感谢帮助
这些注释中的表达式支持非常基础。
我最近打开了一个 GitHub issue 以添加改进(运行时评估等)。