Hitachi

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


9.3.8 エラー情報を取得する

要求先のサービス部品,HCSCサーバ,およびJAX-WSエンジンでエラーが発生した場合,エラー情報を取得し,その情報に従って対処します。

JAX-WSエンジンを使用して通信するサービスリクエスタの場合,情報がラップされた例外(SOAP1.1の場合はCSCMsgServerFaultException_Exception,SOAP1.2の場合はCSCMsgServerFault12Exception_Exception)がキャッチされます。そのため,getFaultInfo()メソッドを使用してフォルト情報の格納クラスを取得する必要があります。

注※

cjwsimportコマンド実行時に,"_"(アンダーバー)は除去され,フォルト情報の格納クラス(FaultBean)との名前重複を回避するために接尾辞"_Exception"が付与された例外名となります。

〈この項の構成〉

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

getFaultInfo()メソッドを使用して,フォルト情報の格納クラスを取得する場合の,サービスリクエスタ側の実装の例を次に示します。

SOAPエンベロープのdetail情報には,Webサービスからの例外(SOAP Fault)の場合には,サービス(SOAP Fault発行元)が返してきたSOAP Faultの情報とHCSC-Messagingが設定したエラーメッセージ,およびエラーコードが含まれます。

HCSC-Messagingで検出した例外(Exception)の場合や,Webサービス以外のサービスからの例外(Exception)の場合には,HCSC-Messagingで検出したエラーのエラーコードとエラー情報が含まれます。

各メソッドについて,次に説明します。

(a) 例外情報保持クラスが持つメソッド

●getErrorMessage(SOAP1.1/SOAP1.2共通)
説明

エラーメッセージを取得します。

次の例外の内容を取得する場合に使用します。

  • HCSC-Messaging内で検知した例外

  • サービス部品やビジネスプロセスからのフォルト

形式

public java.lang.String getErrorMessage()

●getErrorCode(SOAP1.1/SOAP1.2共通)
説明

エラーコードを取得します。

次の例外の内容に対するエラーコードを取得する場合に使用します。

  • HCSC-Messaging内で検知した例外

  • サービス部品やビジネスプロセスからのフォルト

形式

public java.lang.String getErrorCode()

●getProcessInstanceID(SOAP1.1/SOAP1.2共通)
説明

ビジネスプロセスインスタンスIDを取得します。

形式

public String getProcessInstanceID()

●getCscmsgFaultCode(SOAP1.1用)
説明

SOAP1.1による通信の場合に,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCode情報を取得します。

形式

public java.lang.String getCscmsgFaultCode()

●getCscmsgFaultString(SOAP1.1用)
説明

SOAP1.1による通信の場合に,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultString情報を取得します。

形式

public java.lang.String getCscmsgFaultString()

●getCscmsgFaultActor(SOAP1.1用)
説明

SOAP1.1による通信の場合に,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultActor情報を取得します。

形式

public java.lang.String getCscmsgFaultActor()

●getCscmsgFaultCode(SOAP1.2用)
説明

SOAP1.2による通信の場合に,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCodeまたはCode情報を保持するCscmsgFaultCodeクラスを取得します。

形式

public jp.co.hitachi.soft.csc.msg.message.reception.ejb.CscmsgFaultCode getCscmsgFaultCode()

●getCscmsgFaultReason(SOAP1.2用)
説明

SOAP1.2による通信の場合に,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのReason情報を保持するCscmsgFaultReasonクラスを取得します。

形式

public jp.co.hitachi.soft.csc.msg.message.reception.ejb.CscmsgFaultReason getCscmsgFaultReason()

●getCscmsgFaultRole(SOAP1.2用)
説明

SOAP1.2による通信の場合に,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのRole情報を取得します。

形式

public java.lang.String getCscmsgFaultRole()

●getCscmsgFaultNode(SOAP1.2用)
説明

SOAP1.2による通信の場合に,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのNode情報を取得します。

形式

public java.lang.String getCscmsgFaultNode()

●getCscmsgFaultDetail(SOAP1.1/SOAP1.2共通)
説明

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報を取得します。

サービス部品が設定したDetail情報をバイト配列でサービスリクエスタに引き渡します。したがって,取得したバイト配列を文字列に変換する必要があります。

なお,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報がない場合は,0バイトのバイト配列(SOAPメッセージの空タグ)で応答します。

形式

public byte[] getCscmsgFaultDetail()

●getFaultName(SOAP1.1/SOAP1.2共通)
説明

サービス部品(Webサービス)またはビジネスプロセスからの例外名を取得します。

形式

public String getFaultName()

(b) CscmsgFaultCodeクラスが持つメソッド

●getValues(SOAP1.2用)
説明

SOAP1.2による通信の場合に,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCodeまたはCode情報が持つValue情報を取得します。

形式

public java.util.List<java.lang.String> getValues()

(c) CscmsgFaultReasonクラスが持つメソッド

●getTexts(SOAP1.2用)
説明

SOAP1.2による通信の場合に,サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのReason情報が持つText情報を取得します。

形式

public java.util.List<java.lang.String> getTexts()

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

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

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

要素

名称

内容

SOAP1.1

SOAP1.2

faultcode

Code

Faultコード

JAX-WSエンジンに依存する値です。

違反コードを出力します。

faultstring

Fault文字列

JAX-WSエンジンに依存する値です。

エラーメッセージを出力します。

Reason

Fault理由

JAX-WSエンジンに依存する値です。

エラーメッセージを出力します。

faultactor

Role

Fault生成者

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

Node

Faultノード

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

detail※1

Detail※2

Fault詳細

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

(凡例)

−:該当しません。

注※1

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

注※2

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

表9‒10 エラー情報(SOAP Fault)の詳細(SOAP1.1)

フィールド名

説明

サービス部品,ビジネスプロセス,サービスアダプタ,または連携する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動作定義ファイル」を参照してください。

(凡例)

−:該当しません。

表9‒11 エラー情報(SOAP Fault)の詳細(SOAP1.2)

フィールド名

説明

サービス部品,ビジネスプロセス,サービスアダプタ,または連携するHCSCサーバからのエラー(フォルト)

HCSCサーバで検知したエラー(例外)

errorMessage

次に示すエラーの内容です。

  • HCSCサーバ内で検知したエラー

  • サービス部品,ビジネスプロセス,およびサービスアダプタからのエラー

errorCode

次に示す例外の内容に対応するエラーコードです。

  • HCSCサーバ内で検知したエラー

  • サービス部品,ビジネスプロセス,およびサービスアダプタからのエラー

processInstanceID

ビジネスプロセスのインスタンスIDの情報です。

ビジネスプロセスでエラーが発生した場合に値が設定されます。

cscmsgFaultCode

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCode情報です。

cscmsgFaultReason

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultReason情報です。

cscmsgFaultRole

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのRole情報です。

cscmsgFaultDetail

サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報です。

faultName

サービス部品(WebサービスまたはSessionBean)またはビジネスプロセスからのフォルト名(例外名)情報です。

次の場合に値が設定されます。

  • サービス部品(WebサービスまたはSessionBean)からのユーザ定義例外のSOAP Faultの場合

  • ビジネスプロセスからのフォルトの場合

SOAP Fault動作定義ファイルにtargetNamespaceのURIを定義したWebサービスからのSOAP Faultの場合,値は設定されません。SOAP Fault動作定義ファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.6.1 SOAP Fault動作定義ファイル」を参照してください。

(凡例)

−:該当しません。