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

[目次][用語][索引][前へ][次へ]

8.2.8 エラー情報を取得する

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

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

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

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

要素 名称 内容
faultcode Faultコード SOAPエンジンに依存する値です。
message partのメッセージ型属性が参照するQCNameです。
faultstring Fault文字列 SOAPエンジンに依存する値です。
KDCCP0015-Eを出力します。
faultactor Fault生成者 SOAPエンジンに依存する値です。値はありません。
detail Fault詳細 wsdl:faultに対応する内容です。

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

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

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