I am doing spring batch application to get the data from database and finally updating some records in the database.
The problem is ItemProcessor
and ItemWriter
are not being called.
here is my config file.
<job id="BpmJob" xmlns="http://www.springframework.org/schema/batch">
<step id="step1">
<tasklet transaction-manager="transactionManager">
<chunk reader="pagingItemReader" processor="testApp" writer="itemWriter" commit-interval="1" />
</tasklet>
</step>
</job>
<bean id="pagingItemReader" class="com.tcs.controller.BpmReader" scope="step" />
<bean id="testApp" class="com.tcs.controller.BpmProcess" scope="step" />
<bean id="itemWriter" class="com.tcs.controller.BpmWriter" scope="step" />
and i customized ItemProcessor
and Item writer.
@Component
public class BpmWriter implements ItemWriter<List<User>> {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void write(List<? extends List<User>> userList) throws Exception {
for(int i=0;i<userList.size();i++){
User user=(User)userList.get(i);
try{
String query="update com_tt_bpm_batch set status =:status where seqNo =:seqNo";
SqlParameterSource namedParameters = new MapSqlParameterSource();
((MapSqlParameterSource) namedParameters).addValue("status","INACTIVE");
((MapSqlParameterSource) namedParameters).addValue("seqNo",user.getSeqNo());
jdbcTemplate.update(query, namedParameters);
logger.info("updation is successful for seqNo "+user.getSeqNo());
}catch(Exception e){
logger.error("exception at updating the status to inactive ..");
logger.error(e.getStackTrace());
}
}
}
}
Customzied ItemProcessor
@Component
public class BpmProcess implements ItemProcessor<User,User>{
List<User>userList=new ArrayList<User>();
private User userDetails;
private static final Logger logger=Logger.getLogger(BpmProcess. class);
@Override
public User process(User user) {
try{
if(logger.isDebugEnabled()){
logger.debug("process method begins");
}
userDetails=new User();
userDetails.setSeqNo(user.getSeqNo());
userList.add(userDetails);
if(logger.isDebugEnabled()){
logger.debug("process method ends");
}
}
catch(Exception e){
logger.error("Exception at data processing");
logger.error(e.getMessage());
}
return userDetails;
}
}