ページの先頭行へ戻る
Interstage Service Integrator V9.5.0 アプリケーション開発ガイド
FUJITSU Software

D.3.2 JMS,JMS-Rの利用

例をもとに、JMSを利用したアプリケーションの開発手順を説明します。
アプリケーションの開発は、以下の手順で行います。

図D.9 開発の手順

前提

サービスエンドポイント名:endpointJMSIN、endpointJMSOUT

手順
  1. サービスエンドポイント定義を作成します。
    メッセージ送受信APIを利用するためのサービスエンドポイント定義にサービスエンドポイント名“endpointJMSIN”と“endpointJMSOUT”を定義します。
    作成方法については、“ISI Studio ヘルプ”を参照してください。

  2. 手順1で作成したサービスエンドポイント名をパラメタに設定し、通信制御クラス(ESIService)を生成します。

  3. 共通メッセージ(ESIMessage)を作成します。
    共通メッセージの作成方法については、“D.5 共通メッセージの作成・操作”を参照してください。

  4. ISIを呼び出し、共通メッセージを送信、または受信します。

アプリケーションの例(送信)
import com.fujitsu.esi.client.ESIAPIException;
import com.fujitsu.esi.client.ESIService;
import com.fujitsu.esi.client.ESIServiceFactory;
import com.fujitsu.esi.message.ESIHeaderConstants;
import com.fujitsu.esi.message.ESIMessage;
import com.fujitsu.esi.message.ESIParameter;

public class ESISend {
    public static void main(String[] args) {
        try {
            //(2)通信制御クラス(ESIService)を生成
            ESIService service = ESIServiceFactory.getService("endpointJMSIN");
            //(3)ESIMessageを作成
            ESIMessage message = new ESIMessage();
            //JMS用パラメタの設定
            ESIParameter parameter = message.getHeader().getParameter();
            //JMSCorrelationIDの設定
            parameter.put(ESIHeaderConstants.ESI_HEADER_KEY_JMS_HEADER_JMS_CORRELATION_ID, "ID_0123456789");
            //JMS Stringプロパティ “category”の設定
            parameter.put(ESIHeaderConstants.ESI_HEADER_KEYPREFIX_JMS_STRING + "category", "A01");
                           :
            //(4)ISIを呼び出す(共通メッセージの送信)
            ESIMessage returnMessage = service.send(message); ……(a)
                           :
        } catch (ESIAPIException e) {
            e.printStackTrace();
        }
    }
}
アプリケーションの例(受信)
import com.fujitsu.esi.client.ESIAPIException;
import com.fujitsu.esi.client.ESIClientUtil;
import com.fujitsu.esi.client.ESIFilter;
import com.fujitsu.esi.client.ESIService;
import com.fujitsu.esi.client.ESIServiceFactory;
import com.fujitsu.esi.message.ESIMessage;

public class ESIReceive {
    public static void main(String[] args) {
        try {
            //(2)通信制御クラス(ESIService)を生成
            ESIService service = ESIServiceFactory.getService("endpointJMSOUT");
            //フィルタの設定
            ESIFilter filter =
       ESIClientUtil.createJMSReceiveEqualFilter("JMSCorrelationID", "ID_0123456789"); ……(b)
                           :
            //(4)ISIを呼び出す(共通メッセージの受信)            
            ESIMessage returnMessage = service.receive(filter); ……(a)
                           :
        } catch (ESIAPIException e) {
            e.printStackTrace();
        }
    }
}
  1. メッセージ送受信APIの送信API、受信APIとして提供しているメソッドは、以下のとおりです。

    • 非同期送信呼出し:send(ESIMessage)

    • 非同期受信呼出し(フィルタ付き):receive(ESIFilter)

    • 非同期受信呼出し(フィルタなし):receive()

  2. 送信で指定したJMS Stringプロパティ“category”で検索する場合は、以下のようになります。

    ESIFilter filter =
           ESIClientUtil.createJMSReceiveEqualFilter("category", "A01");

    ESIFilterにクエリを設定しない場合は、キューの先頭に格納されている共通メッセージを受信します。