当作业开始时,Spring祖先类抛出NPE

时间:2019-01-10 19:54:17

标签: spring-batch

将Spring Batch集成到现有的Spring应用程序中。表已创建。创建并注册了三个新作业。可以通过jobOperator和jobLauncher找到它们。但是,当调用NPE时,它们会从祖先Spring批处理类(AbstractJob)中出来。

我尝试从jobOperator和jobLauncher调用该作业。甚至首先在jobRepository中按名称查找作业。作业开始,但随后出现NPE。

height: x;

就像SpringBatch正在创建一个未配置的新SimpleJob对象并尝试运行该对象一样:

@Component("processVlsCasesJob")
@Scope(value = "prototype", proxyMode = ScopedProxyMode.NO)
public class ProcessVlsCasesJobImpl 
    extends BatchJobAncestorImpl 
    implements ProcessVlsCasesJob {
...
@SuppressWarnings("serial")
@Component
@Transactional(propagation = Propagation.REQUIRED)
public abstract class BatchJobAncestorImpl 
    extends SimpleJob 
    implements BatchJobAncestor {

    @Autowired // custom DAO
    private BatchAuditDAO batchAuditDAO;
...
public interface BatchJobAncestor extends Job, Serializable {
...
Long jobExecutionId = null;

String parameters = jobParametersExtractor.fromJobParameters(jobParameters);
jobExecutionId = jobOperator.start(result.getJobName(), parameters);
result.setJobExecutionId(jobExecutionId);

我不明白为什么会这样。我可以逐步完成注册逻辑,进入具体作业类的构造函数(上面的ProcessVlsCases),再到其祖先,直到SimpleJob(我没有源,所以我跳过它),然后进入到@PostConstruct方法中。具体课程。

0 个答案:

没有答案