17.4. DMN モデル KJAR の Red Hat ビルドの Kogito マイクロサービスへの移行


外部アプリケーションの移行後に、DMN モデルに固有の KJAR を Red Hat ビルドの Kogito マイクロサービスに移行する必要があります。

手順

  1. Red Hat ビルドの Kogito マイクロサービス用の Maven プロジェクトを作成します。

    Maven プロジェクトの作成手順は、Red Hat ビルドの Kogito マイクロサービス用の Maven プロジェクトの作成 を参照してください。

    Maven プロジェクトは Kogito アーティファクトを作成します。

  2. KJAR の src/main/resources フォルダーから Kogito アーティファクトの src/main/resources フォルダーに DMN モデルをコピーします。
  3. テストシナリオを KJAR の src/test/resources フォルダーから Kogito アーティファクトの src/test/resources フォルダーにコピーします。

    重要

    プロジェクトの pom.xml ファイルに、テストシナリオの Red Hat ビルドの Kogito 依存関係をインポートし、KIE Server REST API を使用して JUnit アクティケーターを作成する必要があります。詳細は、テストシナリオを使用したデシジョンサービスのテスト を参照してください。

  4. 以下のコマンドを実行して、指定した回帰テストに対してテストシナリオが実行されていることを確認します。

    mvn clean install

    Red Hat ビルドの Kogito アプリケーションの実行後に、Swagger または OAS 仕様ファイルを取得できます。Swagger または OAS 仕様は、以下の実装の詳細とともに REST エンドポイントと同じ情報を提供します。

    • API が利用できるサーバーのベース URL
    • スキーマ名の参照

    外部アプリケーションを新しい URL に再ルーティングする場合には、指定の実装の詳細を使用できます。

DMN モデル KJAR を Red Hat ビルドの Kogito マイクロサービスに移行したら、Red Hat OpenShift Container Platform を使用してマイクロサービスをデプロイする必要があります。Openshift のデプロイメントオプションは、RHPAM Kogito Operator を使用した OpenShift デプロイメントオプション を参照してください。

17.4.1. DMN モデル KJAR を Red Hat ビルドの Kogito マイクロサービスに移行する例

以下は、DMN モデル KJAR を Red Hat ビルドの Kogito マイクロサービスに移行する例です。

図17.1 DMN モデルを使用して実装したデシジョンサービスの例

DMN デシジョンサービスの例

図17.2 特定の ItemDefinition 構造を使用した DMN モデルの例

ItemDefinition 構造を使用した DMN デシジョンサービスの例

Business Central で開発した既存の KJAR で、オブジェクトモデル (POJO) を DTO として定義する必要があります。

KJAR で DTO として定義されたオブジェクトモデルの例

package com.myspace.demo20210321;

/**
 * This class was automatically generated by the data modeler tool.
 */

public class Reservation implements java.io.Serializable {

	static final long serialVersionUID = 1L;
	@com.fasterxml.jackson.annotation.JsonFormat(shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    @com.fasterxml.jackson.databind.annotation.JsonSerialize(using = com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer.class)
	private java.time.LocalDate checkin;
	@com.fasterxml.jackson.annotation.JsonFormat(shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    @com.fasterxml.jackson.databind.annotation.JsonSerialize(using = com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer.class)
	private java.time.LocalDate checkout;

	private java.util.List<java.lang.String> guests;

	public Reservation() {
	}

	public java.time.LocalDate getCheckin() {
		return this.checkin;
	}

	public void setCheckin(java.time.LocalDate checkin) {
		this.checkin = checkin;
	}

	public java.time.LocalDate getCheckout() {
		return this.checkout;
	}

	public void setCheckout(java.time.LocalDate checkout) {
		this.checkout = checkout;
	}

	public java.util.List<java.lang.String> getGuests() {
		return this.guests;
	}

	public void setGuests(java.util.List<java.lang.String> guests) {
		this.guests = guests;
	}

	public Reservation(java.time.LocalDate checkin,
			java.time.LocalDate checkout,
			java.util.List<java.lang.String> guests) {
		this.checkin = checkin;
		this.checkout = checkout;
		this.guests = guests;
	}

}

上記の例では、定義した DTO は KIE Server クライアント Java API と共に使用されます。または、Java 以外の外部アプリケーションが KIE Server にデプロイされた KJAR と対話している場合は、ペイロードで DTO を指定できます。

KIE Server クライアント Java API の使用例

DMNServicesClient dmnClient = kieServicesClient.getServicesClient(DMNServicesClient.class);
 DMNContext dmnContext = dmnClient.newContext();
 dmnContext.set("reservation", new com.myspace.demo20210321.Reservation(LocalDate.of(2021, 3, 1),
                                                                         LocalDate.of(2021, 3, 8),
                                                                         Arrays.asList("John", "Alice")));
 run(dmnClient, dmnContext);

図17.3 ペイロードで DTO を手動で指定する例

手動でデプロイされた KJAR の例
注記

上記の例では、REST API のオブジェクトモデルの FQCN は汎用 KIE Server マーシャリングに使用されます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る