Java Batch(JSR 352)是SE JDK的一部分吗? (BatchRuntime为Joboperator返回NULL)

时间:2017-09-15 09:28:06

标签: java jsr352

我使用JavaSE的JSR352实现编写了一个Java批处理应用程序。我有一个读者,处理器和作家。

由于我在JavaSE环境中从控制台运行此java应用程序,因此我在main(String[] args)方法中使用以下代码来启动作业。

final JobOperator jobOperator = BatchRuntime.getJobOperator();
jobOperator.start("Job.xml", null);

但是,getJobOperator()返回NULL并获得以下错误消息

  

警告:javax.batch.runtime.BatchRuntime ServiceLoader无法执行   找到JobOperator的实现。检查类路径   META-INF / services / javax.batch.operations.JobOperator文件。

我应该编写JobOperator接口的任何实现吗?

1 个答案:

答案 0 :(得分:2)

javax.batch.* API虽然是EE 7平台的一部分,但它们可以在SE中使用(它们本身并不需要完整的EE平台)。但是,它们并未被指定为SE平台的一部分,因此它们不会成为JDK的一部分。您需要使用Java Batch实现,例如SpringBatchReference Implementation