Средство чтения элементов BeanIO Комментарии требуют для чтения true.markSupported () - PullRequest
0 голосов
/ 25 марта 2020

Моя карта 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 для комментариев. Можно / как получить комментарии к работе?

1 Ответ

0 голосов
/ 25 марта 2020

Расположение файла сопоставления BeanIO настраивается в BeanIOItemReaderWriterBase классе, поэтому любая конфигурация, указанная в файле сопоставления, будет передана в базовый считыватель BeanIO.

Из трассировки стека это похоже, что он жалуется на то, что базовый читатель не поддерживает метку ( reader.markSupported возвращает false). Но класс JBeret BeanIOItemReader использует BufferedReader, который поддерживает отметку.

...