BeanIO 项目 reader 注释需要 reader.markSupported() 到 return true
BeanIO item reader Comments require reader.markSupported() to return 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 以供评论的记录属性。 Can/How 我的评论有用吗?
BeanIO 映射文件的位置在 BeanIOItemReaderWriterBase class 中配置,因此映射文件中指定的任何配置都将传递给底层 BeanIO reader.
从堆栈跟踪来看,它似乎在抱怨底层 reader 不支持标记(reader.markSupported returns false). But JBeret BeanIOItemReader class 使用了支持标记的 BufferedReader
.
我的 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 以供评论的记录属性。 Can/How 我的评论有用吗?
BeanIO 映射文件的位置在 BeanIOItemReaderWriterBase class 中配置,因此映射文件中指定的任何配置都将传递给底层 BeanIO reader.
从堆栈跟踪来看,它似乎在抱怨底层 reader 不支持标记(reader.markSupported returns false). But JBeret BeanIOItemReader class 使用了支持标记的 BufferedReader
.