10.2.8 エラー情報を取得する

要求先のサービス部品,HCSCサーバ,およびSOAPエンジンでエラーが発生した場合,エラー情報を取得し,その情報に従って対処します。エラーの伝わり方については,マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.7.1 Webサービス(SOAP通信)実行時の障害対策」を参照してください。

<この項の構成>
(1) サービスリクエスタ側の実装例
(2) エラー情報(SOAP Fault)の形式

(1) サービスリクエスタ側の実装例

エラー情報の取得方法は,SOAP通信基盤の種類によって異なります。

(a) Cosminexusが提供しているSOAP通信基盤を使用している場合

Cosminexusが提供している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) Cosminexusが提供しているSOAP通信基盤を使用していない場合

取得するエラー情報は,サービスリクエスタ側で実装しているSOAPエンジンに依存します。

(2) エラー情報(SOAP Fault)の形式

エラー情報(SOAP Fault)の形式を次の表に示します。

表10-4 エラー情報(SOAP Fault)の形式

要素名称内容
faultcodeFaultコードSOAPエンジンに依存する値です。
message partのメッセージ型属性が参照するQCNameです。
faultstringFault文字列SOAPエンジンに依存する値です。
KDCCP0015-Eを出力します。
faultactorFault生成者SOAPエンジンに依存する値です。値はありません。
detailFault詳細wsdl:faultに対応する内容です。
注※
要素「detail」はエラー情報の詳細です。次の表に示す構造体で格納されます。

表10-5 エラー情報(SOAP Fault)の詳細

フィールド名説明
サービス部品,ビジネスプロセス,カスタムアダプタ,または連携するHCSCサーバからのエラー(フォルト)HCSCサーバで検知したエラー(例外)
errorMessage次に示すエラーの内容です。
  • HCSCサーバ内で検知したエラー
  • サービス部品,ビジネスプロセス,およびカスタムアダプタからのエラー
errorCode次に示す例外の内容に対応するエラーコードです。
  • HCSCサーバ内で検知したエラー
  • サービス部品,ビジネスプロセス,およびカスタムアダプタからのエラー
processInstanceIDビジネスプロセスのインスタンスIDの情報です。
ビジネスプロセスでエラーが発生した場合に値が設定されます。
cscmsgFaultCodeサービス部品(Webサービス),ビジネスプロセス,またはカスタムアダプタからのFaultCode情報です。
cscmsgFaultStringサービス部品(Webサービス),ビジネスプロセス,またはカスタムアダプタからのFaultString情報です。
cscmsgFaultActorサービス部品(Webサービス),ビジネスプロセス,またはカスタムアダプタからのFaultActor情報です。
cscmsgFaultDetailサービス部品(Webサービス),ビジネスプロセス,またはカスタムアダプタからのDetail情報です。
faultNameサービス部品(WebサービスまたはSessionBean)またはビジネスプロセスからのフォルト名(例外名)情報です。
次の場合に値が設定されます。
  • サービス部品(WebサービスまたはSessionBean)からのユーザ定義例外のSOAP Faultの場合
  • ビジネスプロセスからのフォルトの場合
SOAP Fault動作定義ファイルにtargetNamespaceのURIを定義したWebサービスからのSOAP Faultの場合,値は設定されません。SOAP Fault動作定義ファイルについては,マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「SOAP Fault動作定義ファイル」を参照してください。

(凡例) -:該当しません。