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

第5部 Webサービスの開発> 第28章 SOAPサーバアプリケーションの開発

28.5 ビジネスクラスの例外処理

ビジネスクラス内で例外が発生した場合は、任意の例外か、com.fujitsu.uji.soap.service.SOAPHandlerExceptionをスローしてください。
ApcoordinatorによってFaultオブジェクトとしてクライアントに返却されます。
1. 任意の例外をスローした場合
任意の例外をスローした場合には、Faultオブジェクトに次の情報が設定されます。
faultcode: uji.handlerException
faultstring: 例外に設定されているメッセージ
detail/stacktrace: 例外が発生した個所のスタックトレース
2. 任意のSOAPHandlerExceptionをスローした場合
SOAPHandlerExceptionをスローした場合には、Faultオブジェクトには次の情報が設定されます。
faultcode: SOAPHandlerExceptionで設定したコード
faultstring: SOAPHandlerExceptionで設定した文字列
detail/stacktrace: SOAPHandlerExceptionが発生した個所のスタックトレース
また、ビジネスクラス内で発生する例外に対して、細かく制御を行うためにはtry-catchブロックを使用します。

import com.fujitsu.uji.DispatchContext;
import com.fujitsu.uji.GenericHandler;
import com.fujitsu.uji.xml.XmlDataBean;
import com.fujitsu.uji.soap.service.SOAPHandlerException;

public class MyHandler extends com.fujitsu.uji.GenericHandler {
  public Object myMethod(DispatchContext context, XmlDataBean dataBean) throws SOAPHandlerException {
    try{
    ・・・

    }catch(Exception e){
      // 必要な情報を設定し、例外を発生させます。
      String faultcode = "xxx";
      String faultstring = "yyy";
      throw new SOAPHandlerException(faultstring, faultcode);
    }
  }
}


目次 前ページ次ページ

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