java - 带有 exceptionExpression 的 @Retryable 不设置任何 #root 对象也不设置变量
问题描述
我在@Retryable
SpringBatch 的库依赖项中使用带有注释的 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
配置似乎与库配置冲突,如果我在最终消息中查看“处理时恢复器中不可跳过的异常”。
此外,在 SpEL 表达式评估中进行调试时,我注意到没有根对象,也没有在 EvaluationContext 中设置任何变量,尽管它正在尝试解析#root.status.is5xxServerError()
。也许它与上面的观察有关。
感谢帮助
解决方案
这些注释中的表达式支持非常基础。
我最近打开了一个GitHub 问题以添加改进(运行时评估等)。
推荐阅读
- sql - 查询以检索 sql 中多个列中的更改
- c - 如何使用 fgets() 和输入文件在 c 中打开文件?
- ios - 在 Swift 中以编程方式滑出导航
- html - 三星 Tizen 智能电视网络应用程序键盘 UI 上的向左或向右箭头键无法处理输入文本
- c - 如何读取外部文件中的前 n 个结构变量 - C
- ios - 如何获取 iCloud 共享相册所有者详细信息
- android - 使用 Android 的 OkHttp POST
- alignment - Swift UI VStack 对齐。按下时使文本字段与键盘一起出现
- javascript - 如何修复 array.length 更改?
- python - 安装 hashLib 会出现 SyntaxError: Missing parentheses in call to 'print'