Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第2部 Apcoordinatorコアの機能> 第8章 Webサービスの呼び出し> 8.4 各種機能の利用

8.4.3 Webサービス呼び出し元でのセション管理の利用

Apcoordinatorで作成したWebサービスを呼び出す場合、およびApache SOAPを使用して一般的なWebサービスを呼び出す場合のセション管理について説明します。Interstage SOAPを使用して一般的なWebサービスを呼び出す場合のセション管理については"Interstage Application Server SOAPサービス ユーザーズガイド"を参照してください。

Webサービス呼び出し元でセション管理を行うためには、サービスを呼び出す直前に次のように記述します。

  1. UjiServiceCallをクラスのメンバ変数にします。
  2. UjiServiceCallがnullかどうかをチェックして、UjiServiceCallがnullの場合に、SOAPFactoryクラスのcreateUjiServiceCallメソッドを呼び出してUjiServiceCallのオブジェクトを取得するようにします。
  3. setMaintainSessionにtureを設定します。
    これによりこのUjiServiceCallクラスのインスタンスはセション管理の情報を保持するように設定されます。
    falseを設定した場合には、UjiServiceCallクラスのインスタンスはセション管理の情報を保持しなくなります。
    初期値はtrueに設定されていますので、UjiServiceCallクラスのインスタンスへセション管理情報を持たせたくない場合にfalseで呼び出してください。

以下に記述例を示します。

 


import com.fujitsu.uji.soap.SOAPCallFactory;
import com.fujitsu.uji.soap.UjiServiceCall;
  
public void someMethod(DispatchContext context, XmlDataBean dataBean) {
  private UjiServiceCall call;

  ...
  // CallFactoryの取得
  SOAPCallFactory callFactory=(SOAPCallFactory)context.getCallFactory(CallFactory.SOAP);
  
  // UjiServiceCallの取得
  String url = new String("http://some.host/service");
  if(call == null) {
      call=callFactory.createUjiServiceCall(url,null, SOAPCallFactory.INTERSTAGE_JAXM);
      call.setMaintainSession(true);
  }
  
  // サービスの呼び出し
  XmlDataBean response=(XmlDataBean)call.invoke(dataBean,verb);
  ...
}


目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2005