我使用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接口的任何实现吗?
答案 0 :(得分:2)
javax.batch.*
API虽然是EE 7平台的一部分,但它们可以在SE中使用(它们本身并不需要完整的EE平台)。但是,它们并未被指定为SE平台的一部分,因此它们不会成为JDK的一部分。您需要使用Java Batch实现,例如SpringBatch或Reference Implementation。