5

我正在尝试从 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();
    }
}

但是,它仍然不起作用。

4

0 回答 0