上記の問題の春バッチで解決策を得ました。プロセスリスナーとジョブ実行コンテキストlistnerクラスのコードは以下のとおりです。
@Bean
@JobScope
public CaliberatedProcessorListener calibratedProcessorListener() {
return new CaliberatedProcessorListener();
}
public class CaliberatedProcessorListener <T, S> implements ItemProcessListener<T, S> {
@Value("#{jobExecution}")
public JobExecution jobExecution;
@Override
public void beforeProcess(T calibratedProessorInPut) {
// // do nothing
}
@Override
public void afterProcess(T calibratedProessorInput, S calibratedProessorOutPut) {
// do nothing
}
@Override
public void onProcessError(T item, Exception calibratedProcessorEx) {
FtpEmailData ftpEmailData = (FtpEmailData) jobExecution.getExecutionContext().get("calDeviceBatchInfo");
ftpEmailData.getExceptionList().add(new CalibratedDeviceException(calibratedProcessorEx.getMessage()));
}
}