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

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

8.3 例外処理の記述

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

SOAPサービスを呼び出した結果、SOAPサービスで例外が発生した場合には、UjiTargetExceptionが投げられます。

SOAPサービスからFault情報が返された場合には、UjiTargetExceptionから派生したUjiSoapExceptionが投げられます。Fault情報を処理したい場合には、UjiSoapExceptionをキャッチして処理を記述してください。

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

import com.fujitsu.uji.soap.SOAPCallFactory;
import com.fujitsu.uji.soap.UjiServiceCall;
import com.fujitsu.uji.ext.UjiRemoteException;
import com.fujitsu.uji.ext.UjiTargetException;
import com.fujitsu.uji.soap.UjiSoapException;
  
public void someMethod(DispatchContext context, XMLDataBean dataBean) {
  ...
  
  // CallFactoryの取得
  SOAPCallFactory callFactory=(SOAPCallFactory)context.getCallFactory(CallFactory.SOAP);
  
  // UjiServiceCallの取得
  String url = new String("http://some.host/service");
  UjiServiceCall call =callFactory.createUjiServiceCall(url,null, SOAPCallFactory.INTERSTAGE_JAXM);
  
  // サービスの呼び出し
  try {
      XmlDataBean response=(XmlDataBean)call.invoke(dataBean,verb);
  } catch(UjiSOAPException s_e) {
      // Fault情報の処理
      Fault f = s_e.getFault();
      if(f.getFaultCode().equals("XXX")) {
          // Faultコードに合わせた処理
          ...
      } else {
          // Faultコードに当てはまらない場合の処理
          ...
          throw s_e;
  } catch(UjiTargetException t_e) {
      // Falut情報が無い場合の処理
      ...
      throw t_e;
  } catch(UjiRemoteException r_e) {
      // UjiRemoteExceptionが発生した場合の処理
      ...
      throw r_e;
  }
  ...
}


目次 前ページ次ページ

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