2

JAR ライブラリを含む WAR アプリケーションがあります。JAR ライブラリには、バッチ ジョブとバッチ アーティファクト ( META-INF/batch-jobs/...) が含まれています。WAR アプリには、この jar がライブラリーとして含まれており、クライアントがインターフェースを呼び出すバッチ・ジョブを呼び出せるようにする JAX-RS サービスを定義していますJobOperator...

このデプロイメントを実行すると、JSR 352 実装 (JBeret) は、JobOperator インターフェイスが呼び出されたときにジョブが見つからないという不平を言い続けます... ただし、バッチ ジョブとバッチ アーティファクトが WAR デプロイメントのクラスとして含まれている場合、すべてがスムーズに実行されます...

それで、問題は何ですか?

4

2 に答える 2

4

「少し」調査した後、次のリンクで答え(分散)を見つけました。

ワイルドフライの問題

メーリングリスト

簡単に言えば、この種のデプロイメントを機能させるには、ジョブ オペレーター インターフェイスを呼び出して要求されたジョブを呼び出すデプロイメントを変更する必要があります (私の場合は WAR ファイルでした)。これらの変更は次のとおりです。

  1. batch-jobsフォルダーの下に「空の」フォルダーを含めMETA-INFます。(GITがそのようなフォルダーを削除しないようにするには、そのフォルダーの下にREADMEファイルを配置する必要があるため、空はオプションだと思います)

  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 に答える