Interstage Application Server SOAPサービス ユーザーズガイド |
目次 索引 |
第5章 RPC方式のアプリケーションの実装 | > 5.6 Fault情報の設定と解析 |
RPCサーバアプリケーションのリモート呼び出し処理で異常が発生した場合、例外javax.xml.rpc.soap.SOAPFaultExceptionがthrowされます。javax.xml.rpc.soap.SOAPFaultExceptionに、リモート呼び出しの結果を表すFault情報が保持されます。
Fault情報には以下の情報が含まれています。
情報種別 |
説明 |
|
---|---|---|
Faultコード |
異常の分類です。以下の文字列が設定されています。
それぞれの意味については下記の“Faultコードの分類”を参照してください。 |
|
Fault説明 |
異常の内容を説明する文字列が設定されています。 |
|
Faultアクタ |
エラーの発生した場所(サーバアプリケーションなど)を表すURIです。 |
|
Fault詳細 |
Webサービス固有に定義される使用するエラー情報の項目が設定されています。 |
javax.xml.rpc.soap.SOAPFaultExceptionクラスの以下のメソッドを使用して取得します。
javax.xml.namespace.QName getFaultCode() |
Faultコード |
説明 |
---|---|
Server |
Webサービス・コンテナやRPCサーバアプリケーションの処理過程で問題を検出したことを示します。 |
Client |
Webサービスが、送信したメッセージ内容に誤りを検出したことを示すコードです。 |
その他のFaultコード値 |
以下のような場合に上記以外のFaultコードが返されることがあります。
|
javax.xml.rpc.soap.SOAPFaultExceptionクラスの以下のメソッドで取得します。
java.lang.String getFaultString() |
javax.xml.rpc.soap.SOAPFaultExceptionの以下のメソッドを使用して取り出します。
java.lang.String getFaultActor() |
Fault詳細は、任意の数のFault詳細項目で構成されたWebサービス固有の情報項目です。
Fault詳細はjavax.xml.rpc.soap.SOAPFaultExceptionの以下のメソッドで取得します。
javax.xml.soap.Detail getDetail() |
Fault詳細に含まれる個々の詳細項目はjavax.xml.soap.DetailEntryオブジェクトとして表され、Detailオブジェクトの以下のメソッドを使用して取り出します。
java.util.Iterator getDetailEntries() |
それぞれのFault詳細項目は、java.util.Iteratorオブジェクトにjavax.xml.soap.DetailEntryオブジェクトとして保持されています。Fault詳細項目の取り出し方は以下のようなプログラムコードになります。
import javax.xml.soap.*; try{ ..... }catch(SOAPFaultException fault){ javax.xml.namespace.QName faultCode = fault.getFaultCode(); String faultString = fault.getFaultString(); // Fault詳細の取得 Detail detail = fault.getDetail(); // Fault詳細項目の取得 Iterator it = detail.getDetailEntries(); while(it.hasNext()){ DetailEntry entry = (DetailEntry)it.next(); ..... } } |
javax.xml.soap.DetailEntryオブジェクトはjavax.xml.soap.SOAPElementを継承するオブジェクトです。よってFault詳細に含まれる個々の詳細項目は純粋なSOAPElementオブジェクトとして操作できます。
目次 索引 |