jberet - BeanIO 项目阅读器评论需要 reader.markSupported() 返回 true
问题描述
我的 beanioItemReader 映射定义如下 -
<stream name="DTA" format="fixedlength">
<parser>
<property name="comments" value="#" />
</parser>
...
并得到例外 -
jberet - WARN JBERET000001: Failed to run batchlet org.jberet.job.model.RefArtifact@67af20cb
java.lang.IllegalArgumentException: Comments require reader.markSupported() to return true
at org.beanio.stream.util.CommentReader.<init>(CommentReader.java:61) ~[beanio-2.1.0.jar:2.1.0]
at org.beanio.stream.fixedlength.FixedLengthReader.<init>(FixedLengthReader.java:101) ~[beanio-2.1.0.jar:2.1.0]
我没有看到任何记录在案的属性可以传递给 beanioItemReader 以征求意见。我可以/如何让评论起作用吗?
解决方案
BeanIO 映射文件的位置在BeanIOItemReaderWriterBase类中配置,因此映射文件中指定的任何配置都将传递给底层 BeanIO 读取器。
从堆栈跟踪来看,它似乎在抱怨底层阅读器不支持标记(reader.markSupported返回 false)。但是 JBeret BeanIOItemReader类使用了BufferedReader
,它确实支持标记。
推荐阅读
- sql - 如何查找记录超过 3 的列数?
- bar-chart - 如何让用户在 Superset 上动态选择条形图 - 系列参数
- cypress - 如何在 cypress.on(test:after:run,...) 中发出正确的异步请求
- azure - 使用证书的 Azure AD 应用程序身份验证复杂性?
- python - 用列中的平均值输入 NaN 并找到缺失值的百分比
- postgresql - OVER (PARTITION BY) 使查询变慢
- c# - Winforms 设置项目强制需要管理员权限
- c# - Windows 窗体 C#(拖放 100 个对象)
- php - 从控制器 YII2 在数据库中输入今天的日期
- ssh - SSH 密钥被添加到默认位置,而不是 sshd_config 中指定的 AuthorizedKeysFile