java – Spring Batch:org.springframework.batch.item.ReaderNot
发布时间:2020-09-01 13:34:50 所属栏目:Java 来源:互联网
导读:我读了相关的问题,但解决方案对我来说并不奏效. 我得到了org.springframework.batch.item.ReaderNotOpenException:读者必须打开才能读取异常. 以下是我的配置: @Bean@StepScopepublic ItemReaderPlayer reader(@Value(#{jobParameters[inputZipfile]}) Stri
|
我读了相关的问题,但解决方案对我来说并不奏效. 我得到了org.springframework.batch.item.ReaderNotOpenException:读者必须打开才能读取异常. 以下是我的配置: @Bean
@StepScope
public ItemReader<Player> reader(@Value("#{jobParameters[inputZipfile]}") String inputZipfile) {
final String [] header = { .. this part omitted for brevity ... };
FlatFileItemReader<Player> reader = new FlatFileItemReader<Player>();
System.out.println("ttttt"+inputZipfile);
reader.setResource(new ClassPathResource(inputZipfile));
reader.setLineMapper(new DefaultLineMapper<Player>() {{
setLineTokenizer(new DelimitedLineTokenizer() {{
setNames( header );
}});
setFieldSetMapper(new BeanWrapperFieldSetMapper<Player>() {{
setTargetType(Player.class);
}});
}});
reader.setComments( header );
return reader;
}
@Bean
@StepScope
public ItemProcessor<Player,PlayersStats> processor(@Value("#{jobParameters[statType]}") String statType,@Value("#{jobParameters[season]}") String season){
PlayersStatsProcessor psp = new PlayersStatsProcessor();
psp.setStatisticType( StatisticType.valueOf(statType) );
psp.setSeason( season );
return psp;
}
@Bean
@StepScope
public ItemWriter<PlayersStats> writer(){
return new CustomWriter();
}
@Bean
public Job generateStatisticsJob() {
return this.jobs.get("generateStatisticsJob")
.incrementer(new RunIdIncrementer())
.start(processPlayerStats())
//.end()
.build();
}
@Bean
public Step processPlayerStats() {
return this.steps.get("processPlayerStats")
.<Player,PlayersStats> chunk(10)
.reader(reader(null))
.processor(processor(null,null))
.writer(writer())
.build();
}
inputZipFile变量设置正确,文件存在于驱动器上. 解决方法当我将读取器bean的返回类型从Item更改为FlatFileItemReader时,问题消失了.我仍然不清楚为什么这是一个问题,因为chunk().reader()接受ItemReader作为输入.我假设有一些AOP魔术在引擎盖下,FlatFileReader init和返回类型匹配.(编辑:十堰站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
