我已经使用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实现,例如SpringBatch或Reference Implementation。