有什么方法可以记录在写入10个大小的项目时失败的确切项目?
有没有办法在ItemWriteListener的onWriteError方法中捕获它? 是否可以通过扩展ItemWriter接口来了解这一点?
谢谢和问候, 尼克
答案 0 :(得分:1)
您可以使用Integer.MAX_VALUE = 2.147.483.647配置skip logic
<step id="step1">
<tasklet>
<chunk reader="flatFileItemReader" writer="itemWriter"
commit-interval="10" skip-limit="2147483647">
<skippable-exception-classes>
<include class="org.springframework.batch.item.file.FlatFileParseException"/>
</skippable-exception-classes>
</chunk>
</tasklet>
<listeners>
<listener ref="customSkipListener" />
</listeners>
</step>
并使用skip listener(请参阅那里的注释)在写作过程中记录不良内容
如果你的编写器已经是一个自定义实现,它可以扩展为只响应OnSkipInWrite的监听器,只需用@OnSkipInWrite添加方法并将编写器注册为监听器(*)
(*)要注意 - 如果编写器也是流,请不要注册为侦听器,流会自动注册为(步骤)侦听器