我正在使用Spring Batch FlatFileItemReader解析csv文件。有时我会收到格式错误的行,并且该应用程序完全崩溃,并显示以下内容:

Caused by: org.springframework.batch.item.file.transform.IncorrectTokenCountException: Incorrect number of tokens found in record: expected 11 actual 18


有什么方法可以告诉FlatFileItemReader在没有完全退出应用程序的情况下继续(引发异常并继续或忽略并继续)。

我猜我可能需要扩展FlatFileItemReader才能做到这一点,因为似乎没有任何设置。关于如何最好地进行并实现这一目标的任何建议?

最佳答案

您可以为您的批处理作业配置SkipLogic
这是一个link to doc

基本上,如果您使用Java Config来管理批处理作业
你可以做这样的事情

stepBuilderFactory.get("step1")
                .<Person, Person>chunk(10)
                .reader(reader)
                .writer(writer)
                .processor(processor)
                .faultTolerant()
                .skipLimit(10)
                .skip(RuntimeException.class)
                .listener(skipListener) // if you want to add
                .build();

10-06 06:22