3
봄 일괄 작업을 시작하는 웹 서비스 메서드가 있습니다. 일괄 처리 컨트롤에서 예외가 발생하면 프로세서 처리 메서드가 돌아올 것입니다. 하지만 컨트롤러를 웹 서비스 메소드로 되돌려 놓아야합니다. 예외를 이메일로 보내야합니다.스프링 배치 프로세서 process() 메소드에서 Spring 배치 작업 시작 메소드로 예외를 던지려면?
웹 서비스 방법
public void processInputFiles() throws ServiceFault {
String[] springConfig = { CONTEXT_FILE_NAME };
ApplicationContext context = new ClassPathXmlApplicationContext(springConfig);
try {
setClientInfo();
JobLauncher jobLauncher = (JobLauncher) context.getBean(JOB_LAUNCHER);
Job job = (Job) context.getBean(REMITTANCE_JOB);
jobLauncher.run(job, new JobParameters());
}catch (Exception e) {
String errorMessage = "LockboxService exception:: Could not process Remittance(CSV) files";
final Message message = MessageFactory.createErrorMessage(MyService.class, errorMessage, e);
ErrorSenderFactory.getInstance().send(message, new Instruction[] { Instruction.ERROR_EMAIL });
}
프로세서의 처리 방법 :
여기@Override
public Transmission process(InputDetail remrow) throws ServiceException {
try {
business logic here
}
catch(Exception e) {
throw new Exception("Unable to process row having the int number:");
}
}
감사합니다. Karthik, 실제로 문제를 해결했습니다. getAllFailureExceptions()를 사용하여 모든 예외를 캡처하는 것을 알지 못했습니다. 방법. – Ayyappak