我正在尝试从EJB调用批处理作业。我的批处理工作基于javax.batch-api-1.0.jar,而不是spring。在我的ejb中,我使用以下行来调用批处理作业:
JobOperator jobOperator = BatchRuntime.getJobOperator();
Properties props = new Properties();
long execID=jobOperator.start("myBatch-job", props);
然而,它失败了。 Debug显示BatchRuntime.getJobOperator()返回null。谁能告诉我为什么调用失败了?感谢。
===== 问题应该是我没有将JobOperator注入EJB。但我不知道如何解决它。我尝试使用@Inject,
@Inject
JobOperator jobOperator;
...
Properties props = new Properties();
jobOperator.start("myBatch-job", props);
我还添加了一个JobProducer类:
@Named
public class JobProducers {
@Produces
@Default
public JobOperator getJobOperator() {
return BatchRuntime.getJobOperator();
}
}
然而,它仍然无效。