我正在扩展ItemListenerSupport
来捕获在读取/处理/写入步骤中遇到的错误,例如此代码段。
@Override
public void onWriteError(Exception ex, List<? extends BaseDomainDataObject> items) {
logger.error("Encountered error on write", ex);
String msgBody = ExceptionUtils.getStackTrace(ex);
numProcessedMap.computeIfAbsent("numErrors", val -> items.size());
errorMap.put(numErrors.addAndGet(1), msgBody);
}
如何将步骤中或工作中在地图中累积的所有错误都放入
ExecutionContext
(最好)? 最佳答案
唯一的方法是创建StepExecutionListener
并将StepExecutionContext
注入到ItemListenerSupport
中的自定义StepExecution#beforeStep()
中。
使用JobExecutionContext
的JobExecutionContext#beforeJob()
也是如此。
要么。更轻松地,让您的自定义ItemListenerSupport
实现StepExecutionListener
或JobExectutionListener