簡體   English   中英

JSR 352:Wildfly9 / JBeret-如何調用不在同一部署文件級別包含的批處理作業

[英]JSR 352: Wildfly9 / JBeret - How to call a batch job that it is not contained at the same deployment file level

我有一個包含JAR庫的WAR應用程序。 JAR庫包含批處理作業和批處理工件( META-INF/batch-jobs/... )。 WAR應用程序將此jar包含為庫,並定義了JAX-RS服務,該服務允許客戶端調用調用JobOperator接口的批處理作業...

當我運行此部署時,JSR 352實現(JBeret)一直抱怨在調用JobOperator接口時找不到任何作業。但是,如果將批處理作業和批處理工件作為WAR部署的類包括在內,一切運行順利...

那么,有什么問題呢?

經過“少量”研究,我在以下鏈接中找到了答案(分散的):

野蠅問題

郵件列表

簡而言之,為了使這種部署生效,您必須修改調用Job Operator接口以調用請求的Job的部署(在我的情況下是WAR文件)...這些是修改:

  1. META-INF文件夾下包括一個“空” batch-jobs文件夾。 (我想空是可選的,因為我必須在該文件夾下放置一個README文件,以防止GIT刪除該文件夾)

  2. META-INF/services文件夾下定義一個ServiceLoader (文件)。 必須調用此ServiceLoader(文件): org.jberet.spi.JobXmlResolver並應包含以下實現作為內容: org.jberet.tools.MetaInfBatchJobsJobXmlResolver

就這樣。

WildFly問題( https://issues.jboss.org/browse/WFLY-7000 ,與上述問題類似,但有所不同)已得到解決,應該解決您的要點1(必須使用空批處理-作業/目錄)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM