gpt4 book ai didi

java - Spring batch Input resource must exist (reader is in 'strict' mode)错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:10:21 59 4
gpt4 key购买 nike

我使用 Spring Batch 来解析 csv 文件。当文件在资源目录中时效果很好,但在其他地方不起作用。我收到糟糕的错误

Caused by: java.lang.IllegalStateException: Input resource must exist (reader is in 'strict' mode): class path resource [c:/data/geodata1.csv]

我的代码

spring.datasource:
driverClassName: org.h2.Driver
url: jdbc:h2:mem:mydb;MODE=Oracle
server:
port: 9001
geodata:
file: c:/data/geodata1.csv

@Value("${geodata.file}")
private String filePath;

@Bean
public FlatFileItemReader<Person> reader() {
FlatFileItemReader<Person> reader = new FlatFileItemReader<Person>();
reader.setResource(new ClassPathResource(filePath));
reader.setLineMapper(new DefaultLineMapper<Person>() {{
setLineTokenizer(new DelimitedLineTokenizer() {{
setNames(new String[] {"clientId", "longitude", "latitude", });
}});
setFieldSetMapper(new BeanWrapperFieldSetMapper<Person>() {{
setTargetType(Person.class);
}});
}});
return reader;
}

但是这段代码效果很好

File file = new File(filePath);

最佳答案

使用 org.springframework.core.ioPathResource ,它对我有用

@Bean
@StepScope
public FlatFileItemReader<CourseCountry> reader(@Value("#{jobParameters[fullPathFileName]}") String pathToFile) {
return new FlatFileItemReaderBuilder<CourseCountry>()
.name("studentItemReader")
.resource(new PathResource(pathToFile))
.lineMapper(lineMapper())
.linesToSkip(1)
.build();
}

关于java - Spring batch Input resource must exist (reader is in 'strict' mode)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46403159/

59 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com