我已经使用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接口的任何实现吗?

最佳答案

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

09-07 04:45