Он просто генерирует исключение и не запускает «onReadError»
PS: mst_employees1 - это таблица данных, которой не существует, для имитации аномалий
@Bean
private Step step1(MyBatisCursorItemReader<MstEmployeesEntity> myBatisReader,FlatFileItemWriter<MstEmployeesEntity> CSVWriter){
return stepBuilderFactory
.get("step1")
.listener(stepListener)
.<MstEmployeesEntity,MstEmployeesEntity>chunk(1)
.reader(myBatisReader)
.listener(readerListener)
.processor(myPorcessor)
.writer(CSVWriter)
.build();
}
@Bean
@StepScope
public MyBatisCursorItemReader<MstEmployeesEntity> myBatisReader(@Value("#{jobParameters['para1']}") Integer pk) {
Map<String, Object> map = new HashMap<>();
map.put("employeePk",pk);
return new MyBatisCursorItemReaderBuilder<MstEmployeesEntity>()
.sqlSessionFactory(sqlSessionFactory)
.queryId("jp.armg.toughness.datasource.mapper.BatchMstEmployeesEntityMapper.exmapleSelect")
.parameterValues(map)
.build();
}
Класс задания
public class ReaderListener implements ItemReadListener<MstEmployeesEntity> {
@Override
public void onReadError(Exception ex) {
// TODO Auto-generated method stub
System.out.println("++++++++++++++++++++++++++++++++++++++");
System.out.println("on read error: " + ex.getMessage());
System.out.println("======================================");
}
}
Слушатель чтения
<mapper namespace="jp.armg.toughness.datasource.mapper.BatchMstEmployeesEntityMapper">
<select id="exmapleSelect" resultType="jp.armg.toughness.datasource.entity.MstEmployeesEntity">
select * from mst_employees1 where employee_pk < #{employeePk};
</select>
</mapper>
Mapper
org.springframework.batch.item.ItemStreamException: Failed to initialize the reader
at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.open(AbstractItemCountingItemStreamItemReader.java:152) ~[spring-batch-infrastructure-4.1.2.RELEASE.jar:4.1.2.RELEASE]
at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader$$FastClassBySpringCGLIB$$ebb633d0.invoke(<generated>) ~[spring-batch-infrastructure-4.1.2.RELEASE.jar:4.1.2.RELEASE]
Console
Он просто генерирует исключение и не запускает «onReadError»
PS: mst_employees1 - это таблица данных, которая не существует для моделирования аномалий