第6章 自己完結型 Red Hat Decision Manager Spring Boot JAR ファイルの作成
KIE Server および 1 つ以上の KJAR ファイルなど、完全なサービスを含む、自己完結型 Red Hat Decision Manager Spring Boot JAR ファイル 1 つを作成できます。Red Hat Decision Manager Spring Boot JAR ファイルは、ランタイム時に読み込まれる KJAR ファイルには依存しません。
必要に応じて、Red Hat Decision Manager Spring Boot JAR ファイルには、モジュールを含む、同じ KJAR ファイルの複数のバージョンを含めることができます。これらの KJAR ファイルは、artifactID 属性値と groupID 属性値が同じですが、version の値は異なります。
含める KJAR ファイルは、クラスローダーの衝突を避けるために BOOT-INF/lib ディレクトリーの JAR ファイルから分離されています。各 KJAR クラスパスコンテナーファイルは、他の KJAR クラスパスコンテナーファイルから分離され、Spring Boot クラスローダーに依存しません。
前提条件
- 既存の Red Hat Decision Manager Spring Boot プロジェクトがある。
- プロジェクトの KJAR ファイル 1 つ以上の開発を完了している。
手順
プロジェクトの KJAR ファイルをすべてビルドします。デフォルトのビジネスアプリケーションでは、KJAR ソースは
<BUSINESS-APPLICATION>/<BUSINESS-APPLICATION>-kjarディレクトリーに含まれます。BUSINESS-APPLICATIONはビジネスアプリケーションの名前に置き換えます。プロジェクトには、他の KJAR ソースディレクトリーが含まれている可能性があります。すべての KJAR ソースのディレクトリーの KJAR ファイルをビルドするには、以下の手順を実行します。
- KJAR ソースディレクトリーに移動します。
以下のコマンドを入力します。
mvn install
mvn installCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、KJAR ファイルをビルドし、ローカルの Maven リポジトリーに配置します。デフォルトでは、このリポジトリーは
~/.m2/repoディレクトリーに配置されます。
<BUSINESS-APPLICATION>/<BUSINESS-APPLICATION>-service/src/main/resourcesディレクトリーで、Spring Boot アプリケーションのapplication.propertiesファイルに以下のプロパティーを追加します。kieserver.classPathContainer=true
kieserver.classPathContainer=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow このプロパティーを
trueに設定すると、KIE Server はコンテナーが使用するクラスローダーを使用して KJAR ファイルとその依存関係を読み込みます。KIE Server が必要な KJAR モジュールを読み込むには、以下のいずれかのアクションを実行します。
KIE Server を設定して、Spring Boot アプリケーションで利用可能なすべての KJAR モジュールをスキャンし、デプロイするには、以下のプロパティーを
application.propertiesファイルに追加します。kieserver.autoScanDeployments=true
kieserver.autoScanDeployments=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow このプロパティーを
trueに設定すると、プログラムを使用して宣言されているか、Maven プラグインを介して宣言されているかに関係なく、KIE Server はアプリケーションで利用可能なすべての KJAR モジュールをデプロイします。このオプションは、すべての KJAR モジュールを含める最も簡単な方法です。ただし、欠点が 2 つあります。
- アプリケーションは、すべての KJAR モジュールのグループ、アーティファクト、バージョン (GAV) に基づいて、すべてのコンテナー ID およびエイリアスを自動的に設定します。KJAR モジュールのカスタムコンテナー ID またはエイリアスを設定できません。
- 起動時に、アプリケーションは JAR ファイルおよび KJAR モジュールのクラスパスをスキャンします。そのため、起動期間は長くなる可能性があります。
このような欠点を回避するには、以下のいずれかのオプションで説明されているように
application.propertiesファイルを使用するか、Java ソースコードを使用して、すべての KJAR モジュールを個別に設定できます。サービスに追加する KJAR モジュールごとに、
application.propertiesファイルを使用して、すべての KJAR モジュールを個別に設定するには、以下のプロパティーをapplication.propertiesファイルに追加します。kieserver.deployments[<n>].containerId=<container> kieserver.deployments[<n>].alias=<alias> kieserver.deployments[<n>].artifactId=<artifact> kieserver.deployments[<n>].groupId=<group> kieserver.deployments[<n>].version=<version>
kieserver.deployments[<n>].containerId=<container> kieserver.deployments[<n>].alias=<alias> kieserver.deployments[<n>].artifactId=<artifact> kieserver.deployments[<n>].groupId=<group> kieserver.deployments[<n>].version=<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えます。
-
<n>: 連番: 1 番目の KJAR モジュールは0、2 番目のモジュールの場合は1など。 -
<container>: KJAR モジュールのコンテナー ID -
<alias>: KJAR モジュールのエイリアス -
<artifact>: KJAR モジュールのアーティファクト ID -
<group>: KJAR モジュールのグループ ID -
<version>: KJAR モジュールのバージョン ID
以下の例では、
Evaluation用の KJAR モジュールの 2 つのバージョンを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Java ソースコードを使用してすべての KJAR モジュールを個別に設定するには、以下の例のように、ビジネスアプリケーションサービスにクラスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 追加するすべての KJAR モジュールについて、このクラスに
KieContainerResourceBean を作成します。Bean の名前はコンテナー名であり、KieContainerResource()の最初のパラメーターはエイリアス名で、ReleaseId()のパラメーターは、KJAR モジュールのグループ ID、アーティファクト ID、およびバージョン ID です。
必要に応じて、ビジネスアプリケーションを Red Hat OpenShift Container Platform Pod で実行するか、現在のディレクトリーが書き込み可能ではない他の環境で実行する場合は、
spring.jta.log-dirプロパティーをapplication.propertiesファイルに追加し、書き込み可能な場所に設定します。以下に例を示します。spring.jta.log-dir=/tmp
spring.jta.log-dir=/tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow このパラメーターは、トランザクションログの場所を設定します。
<BUSINESS-APPLICATION>/<BUSINESS-APPLICATION>-serviceディレクトリーの Spring Bootpom.xmlファイルに以下の Maven プラグインを追加します。<GROUP_ID>、<ARTIFACT_ID>および<VERSION>は、プロジェクトが使用する KJAR アーティファクトのグループ、アーティファクト、バージョン (GAV) に置き換えます。これらの値は、KJAR ソースディレクトリーにあるpom.xmlファイルにあります。注記アーティファクトのバージョンを複数追加できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KJAR の実行に必要なアーティファクトは、ビルド時に解決されます。
以下の例では、
Evaluationアーティファクトのバージョンを 2 つ追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 自己完結型 Spring Boot イメージをビルドするには、
<BUSINESS-APPLICATION>/<BUSINESS-APPLICATION>-serviceディレクトリーで以下のコマンドを入力します。mvn install
mvn installCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 自己完結型 Spring Boot イメージを実行するには、
targetサブディレクトリーで JAR ファイルを見つけ、以下のコマンドを入力します。java -jar <FILENAME>.jar
java -jar <FILENAME>.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドで
<FILENAME>は JAR ファイルの名前に置き換えます。