从EJB调用批处理作业

dee*_*rls 5 ejb java-ee batch-processing cdi

我试图从EJB调用批处理作业.我的批处理工作基于javax.batch-api-1.0.jar,而不是spring.在我的ejb中,我使用以下行来调用批处理作业:

JobOperator jobOperator = BatchRuntime.getJobOperator();
Properties props = new Properties();
long execID=jobOperator.start("myBatch-job", props);
Run Code Online (Sandbox Code Playgroud)

然而,它失败了.Debug显示BatchRuntime.getJobOperator()返回null.谁能告诉我为什么调用失败了?谢谢.

=====问题应该是我没有将JobOperator注入EJB.但我不知道如何解决它.我尝试使用@Inject,

@Inject
JobOperator jobOperator;

...

Properties props = new Properties();
jobOperator.start("myBatch-job", props);
Run Code Online (Sandbox Code Playgroud)

我还添加了一个JobProducer类:

@Named
public class JobProducers {

    @Produces
    @Default
    public JobOperator getJobOperator() {
        return BatchRuntime.getJobOperator();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,它仍然无效.