21.3. カスタムクライアント API を使用した KIE Server のクライアント拡張
KIE Server は、KIE Server サービスの使用時に対話可能な、事前定義済みのクライアント API を使用します。カスタムのクライアント API で KIE Server クライアントを拡張して、ビジネスのニーズに KIE Server サービスを適合させます。
たとえば、以下の手順では、カスタムのクライアント API を KIE Server に追加して、Apache MINA (オープンソースの Java ネットワークアプリケーションフレームワーク) をもとにした、カスタムのデータトランスポートに対応します (このシナリオ向けにすでに設定済み)。
手順
空の Maven プロジェクトを作成して、以下のパッケージタイプと依存関係を、プロジェクトの
pom.xmlファイルに定義します。サンプルプロジェクトの pom.xml ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例のように、プロジェクトの Java クラスに、関連する
ServicesClientインターフェイスを実装します。RulesMinaServicesClientインターフェイスの例public interface RulesMinaServicesClient extends RuleServicesClient { }public interface RulesMinaServicesClient extends RuleServicesClient { }Copy to Clipboard Copied! Toggle word wrap Toggle overflow インターフェイスをもとにクライアントの実装を登録する必要があるため、特定のインターフェイスが必要です。また、指定のインターフェイスには実装は 1 つしか指定できません。
この例では、カスタムの MINA ベースのデータトランスポートが
Drools拡張を使用し、このRulesMinaServicesClientインターフェイスの例は、Drools拡張から、既存のRuleServicesClientクライアント API を拡張します。以下の例のように、新規の MINA トランスポートのクライアント機能を追加するのに KIE Server が使用可能な
RulesMinaServicesClientインターフェイスを実装します。RulesMinaServicesClientインターフェイスの実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow この実装例は、以下のデータおよび動作を指定します。
- ソケットベースの通信を使用して簡素化します。
-
KIE Server クライアントのデフォルト設定に依存し、
ServerUrlを使用して MINA サーバーのホストとポートを提供します。 - マーシャリング形式で JSON を指定します。
-
受信メッセージは左波括弧
{で始まる JSON オブジェクトでなければなりません。 - 応答の最初の行を待機中に、ブロッキング API と直接、ソケット通信を使用してから、利用可能なすべての行を読み取ります。
- ストリームモード を使用しないため、コマンドの呼び出し後に KIE Server セッションを切断します。
以下の例のように、プロジェクトの Java クラスに
org.kie.server.client.helper.KieServicesClientBuilderインターフェイスを実装します。KieServicesClientBuilderインターフェイスの実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
新規のクライアント API を KIE Server クライアントで検出できるようにするには、Maven プロジェクトで
META-INF/services/org.kie.server.client.helper.KieServicesClientBuilderファイルを作成し、このファイルにKieServicesClientBuilder実装クラスの完全修飾名を追加します。たとえば、このファイルにはorg.kie.server.ext.mina.client.MinaClientBuilderImplの 1 行が含まれます。 -
プロジェクトを構築して、作成された JAR ファイルをプロジェクトの
~/kie-server.war/WEB-INF/libディレクトリーにコピーします。たとえば、Red Hat JBoss EAP ではこのディレクトリーへのパスはEAP_HOME/standalone/deployments/kie-server.war/WEB-INF/libです。 KIE Server を起動して、実行中の KIE Server に構築したプロジェクトをデプロイします。プロジェクトは、Business Central インターフェイスまたは KIE Server REST API (
http://SERVER:PORT/kie-server/services/rest/server/containers/{containerId}へのPUT要求) を使用してデプロイできます。実行中の KIE Server にプロジェクトをデプロイしたあとに、新規の KIE Server クライアントと対話を開始できます。標準の KIE Server クライアントと同じ方法で、クライアント設定とクライアントインスタンスを作成して、タイプ別にサービスクライアントを取得し、クライアントメソッドを呼び出して、新しいクライアントを使用します。
たとえば、
RulesMinaServiceClientクライアントインスタンスを作成して、MINA トランスポートを使用して KIE Server で操作を呼び出すことができます。RulesMinaServiceClientクライアント作成の実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow MINA トランスポートを使用して KIE Server 上で操作を呼び出す設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow