Spring Batch FlatFileItemReader继续使用错误数量的令牌

2022-02-28 00:00:00 csv spring java spring-batch

我使用Spring BatchFlatFileItemReader解析CSV文件。每隔一段时间,我就会收到格式错误的行,应用程序完全崩溃,并显示:

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

有没有办法告诉FlatFileItemReader在不完全退出应用程序的情况下继续(抛出异常并继续或忽略并继续)。

我猜我可能需要扩展FlatFileItemReader才能实现这一点,因为似乎没有对此进行任何设置。对于如何最好地继续并实现这一点,有什么建议吗?


解决方案

我能够通过创建扩展注入FlatFileItemReaderDefaultLineMapper的类来解决此问题。

然后我重写了mapLine方法,如下所示:

@Override
public T mapLine(String line, int lineNumber) throws Exception {
    T t = null;

    try {
        t = super.mapLine(line, lineNumber);
    } catch (Exception e) {
        log.error("Unable to parse line number <<{}>> with line <<{}>>.", lineNumber, line);
    }

    return t;
}

相关文章