Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編


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)の形式を次の表に示します。

表9‒4 エラー情報(SOAP Fault)の形式

要素

名称

内容

faultcode

Faultコード

SOAPエンジンに依存する値です。

message partのメッセージ型属性が参照するQCNameです。

faultstring

Fault文字列

SOAPエンジンに依存する値です。

KDCCP0015-Eを出力します。

faultactor

Fault生成者

SOAPエンジンに依存する値です。値はありません。

detail

Fault詳細

wsdl:faultに対応する内容です。

注※

要素「detail」はエラー情報の詳細です。次の表に示す構造体で格納されます。

表9‒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動作定義ファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.6.1 SOAP Fault動作定義ファイル」を参照してください。

(凡例)

−:該当しません。