2

我有一个包含 JAR 库的 WAR 应用程序。JAR 库包含批处理作业和批处理工件 ( META-INF/batch-jobs/...)。WAR 应用程序将此 jar 包含为一个库,并定义了一个 JAX-RS 服务,该服务允许客户端调用调用JobOperator接口的批处理作业......

当我运行此部署时,JSR 352 实现(JBeret)一直抱怨在调用 JobOperator 接口时无法找到任何作业......但是,如果批处理作业和批处理工件作为 WAR 部署的类包含,一切顺利...

那么,问题是什么?

4

2 回答 2

4

经过“少量”研究后,我在以下链接中找到了答案(分散):

野蝇问题

邮件列表

简而言之,为了使这种部署工作,您必须修改调用 Job Operator 接口以调用请求的 Job 的部署(在我的情况下,它是 WAR 文件)......这些是修改:

  1. batch-jobs在文件夹下包含一个“空”文件META-INF夹。(我想空是可选的,因为我必须在该文件夹下放置一个 README 文件以防止 GIT 删除此类文件夹)

  2. 在文件夹下定义一个ServiceLoader(文件)META-INF/services。必须调用此 ServiceLoader(文件):org.jberet.spi.JobXmlResolver并且应包含以下实现作为内容:org.jberet.tools.MetaInfBatchJobsJobXmlResolver

就这样。

于 2015-11-19T21:21:09.347 回答
0

WildFly 问题(https://issues.jboss.org/browse/WFLY-7000,类似于上面提到的问题,但不同)已得到修复,并且应该解决您的第 1 点(必须使用空批次-工作/目录)。

于 2016-09-26T19:55:13.060 回答