9.2.8 エラー情報を取得する
要求先のサービス部品,HCSCサーバ,およびSOAPエンジンでエラーが発生した場合,エラー情報を取得し,その情報に従って対処します。エラーの伝わり方については,マニュアル「サービスプラットフォーム システム構築・運用ガイド」の「7.7.1 Webサービス(SOAP通信)実行時の障害対策」を参照してください。
(1) サービスリクエスタ側の実装例
エラー情報の取得方法は,SOAP通信基盤の種類によって異なります。
(a) サービスプラットフォームが提供しているSOAP通信基盤を使用している場合
サービスプラットフォームが提供しているSOAP通信基盤を使用している場合,CSCMsgServerFaultExceptionオブジェクトをキャッチして,SOAP Faultのエラー情報を取得します。
エラー情報を取得するには,サービスリクエスタ側で次のように実装する必要があります。
: } catch (CSCMsgServerFaultException e) { System.err.println("Exception ErrorMessage = " + e.getErrorMessage() ); System.err.println("Exception ErrorCode = " + e.getErrorCode() ); System.err.println("Exception ProcessInstanceID = " + e.getProcessInstanceID() ); System.err.println("Exception FaultCode = " + e.getCscmsgFaultCode() ); System.err.println("Exception FaultString = " + e.getCscmsgFaultString() ); System.err.println("Exception FaultActor = " + e.getCscmsgFaultActor() ); System.err.println("Exception FaultDetails = " + new String(e.getCscmsgFaultDetail(), "UTF-8")); System.err.println("Exception FaultName = " + e.getFaultName() ); } :
各メソッドについて,次に説明します。
- ●getErrorMessage
-
- 説明
-
エラーメッセージを取得します。
次の例外の内容を取得する場合に使用します。
-
HCSC-Messaging内で検知した例外
-
サービス部品やビジネスプロセスからのフォルト
-
- 形式
-
public java.lang.String getErrorMessage()
- ●getErrorCode
-
- 説明
-
エラーコードを取得します。
次の例外の内容に対するエラーコードを取得する場合に使用します。
-
HCSC-Messaging内で検知した例外
-
サービス部品やビジネスプロセスからのフォルト
-
- 形式
-
public java.lang.String getErrorCode()
- ●getProcessInstanceID
-
- 説明
-
ビジネスプロセスインスタンスIDを取得します。
- 形式
-
public String getProcessInstanceID()
- ●getCscmsgFaultCode
-
- 説明
-
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCode情報を取得します。
- 形式
-
public java.lang.String getCscmsgFaultCode()
- ●getCscmsgFaultString
-
- 説明
-
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultString情報を取得します。
- 形式
-
public java.lang.String getCscmsgFaultString()
- ●getCscmsgFaultActor
-
- 説明
-
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultActor情報を取得します。
- 形式
-
public java.lang.String getCscmsgFaultActor()
- ●getCscmsgFaultDetail
-
- 説明
-
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報を取得します。
サービス部品が設定したDetail情報をバイト配列でサービスリクエスタに引き渡します。したがって,取得したバイト配列を文字列に変換する必要があります。
なお,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報がない場合は,0バイトのバイト配列(SOAPメッセージの空タグ)で応答します。
- 形式
-
public byte[] getCscmsgFaultDetail()
- ●getFaultName
-
- 説明
-
サービス部品(Webサービス)またはビジネスプロセスからの例外名を取得します。
- 形式
-
public String getFaultName()
(b) サービスプラットフォームが提供しているSOAP通信基盤を使用していない場合
取得するエラー情報は,サービスリクエスタ側で実装しているSOAPエンジンに依存します。
(2) エラー情報(SOAP Fault)の形式
エラー情報(SOAP Fault)の形式を次の表に示します。
要素 |
名称 |
内容 |
---|---|---|
faultcode |
Faultコード |
SOAPエンジンに依存する値です。 message partのメッセージ型属性が参照するQCNameです。 |
faultstring |
Fault文字列 |
SOAPエンジンに依存する値です。 KDCCP0015-Eを出力します。 |
faultactor |
Fault生成者 |
SOAPエンジンに依存する値です。値はありません。 |
detail※ |
Fault詳細 |
wsdl:faultに対応する内容です。 |
フィールド名 |
説明 |
|
---|---|---|
サービス部品,ビジネスプロセス,サービスアダプタ,または連携するHCSCサーバからのエラー(フォルト) |
HCSCサーバで検知したエラー(例外) |
|
errorMessage |
次に示すエラーの内容です。
|
|
errorCode |
次に示す例外の内容に対応するエラーコードです。
|
|
processInstanceID |
ビジネスプロセスのインスタンスIDの情報です。 ビジネスプロセスでエラーが発生した場合に値が設定されます。 |
|
cscmsgFaultCode |
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCode情報です。 |
− |
cscmsgFaultString |
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultString情報です。 |
− |
cscmsgFaultActor |
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultActor情報です。 |
− |
cscmsgFaultDetail |
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報です。 |
− |
faultName |
サービス部品(WebサービスまたはSessionBean)またはビジネスプロセスからのフォルト名(例外名)情報です。 次の場合に値が設定されます。
SOAP Fault動作定義ファイルにtargetNamespaceのURIを定義したWebサービスからのSOAP Faultの場合,値は設定されません。SOAP Fault動作定義ファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.6.1 SOAP Fault動作定義ファイル」を参照してください。 |
− |