java - 如果该项目阅读器或步骤的文件不存在,如何跳过整个步骤
问题描述
问题:> 我正在为我的春季批处理作业配备项目阅读器编写器处理器。当我运行它时,它给我错误初始化阅读器失败并显示:> 原因:java.lang.IllegalStateException:输入资源必须存在(阅读器处于“严格”模式):文件
我的要求是:如果文件不存在,我希望我的项目阅读器不运行。
谁能帮助我:如果该项目阅读器的文件不存在,我想跳过整个步骤。我的步骤包括(项目读取器、处理器和写入器)。
如果文件不存在,请告诉我如何跳过步骤。任何帮助将不胜感激。无论如何将阅读器设置为非严格模式。
解决方案
请参见此处:您可以在“块/步骤”上设置跳过条件(和限制)。
@Bean
public Step step1() {
return this.stepBuilderFactory.get("step1")
.<String, String>chunk(CHUNK_SIZE)
.reader(flatFileItemReader())
.writer(itemWriter())
.faultTolerant()
.skipLimit(0) // 0: dont re-try
.skip(FlatFileParseException.class) // when you use FlatFileItemWriter,
// but other exception (type) possible, e.g. IllegalStateException.class
.build();
}
要在 FlatFileItemReader 中设置“非严格”模式,只需:
@Bean
public FlatFileItemReader<XY> flatFileItemReader() {
FlatFileItemReader<XY> reader = new FlatFileItemReader<>();
//!
reader.setStrict(false);
// reader.setXYZ ...
return reader;
}
推荐阅读
- python - Pandas DataFrame 操作和转换
- tcp - 使用 mitmproxy 伪造和重放单个 TCP 数据包
- c++ - CLion下的SQLAPI++
- c - 如何使用 FatFs 获取文件名?
- c - 为什么会出现未定义的引用错误以及如何在 Visual Studio 中进行链接?
- python - 握手状态 400 错误请求 pythone
- python - Python - 根据距离关联两个点列表
- c - 如何将格式化的字符串传递给C中的结构?
- cakephp - 在 cakephp 3.437 中添加搜索条件后,数组变量未更新
- c# - C# WPF MediaElement 为现有文件抛出 FileNotFoundException