我正在尝试从 EJB 调用批处理作业。我的批处理作业基于 javax.batch-api-1.0.jar,而不是 spring。在我的 ejb 中,我使用以下行来调用批处理作业:
JobOperator jobOperator = BatchRuntime.getJobOperator();
Properties props = new Properties();
long execID=jobOperator.start("myBatch-job", props);
然而,它失败了。调试显示 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();
}
}
但是,它仍然不起作用。