9.4.7 エラー情報を取得する
要求先のサービス部品,HCSCサーバ,およびEJBコンテナでエラーが発生した場合,エラー情報を取得し,その情報に従って対処します。
エラー情報は,サービスリクエスタ側でCSCMsgServerExceptionクラスを取得することによって取得できます。CSCMsgServerExceptionクラスについては「(2) CSCMsgServerExceptionクラス」を参照してください。エラーの伝わり方については,マニュアル「サービスプラットフォーム システム構築・運用ガイド」の「7.7.2 SessionBean実行時の障害対策」を参照してください。
エラーの詳細については,getErrorMessageメソッドおよびgetErrorCodeメソッドを使用して取得します。また,Webサービスからのエラー情報(SOAP Fault)を取得する場合は,checkSoapFaultメソッドを使用します。
(1) サービスリクエスタ側の実装例
CSCMsgServerExceptionクラスを取得する場合のサービスリクエスタ側の実装例を次に示します。
: } catch (CSCMsgServerException e) { System.err.println("Exception ErrorMessage = " + e.getErrorMessage() ); System.err.println("Exception ErrorCode = " + e.getErrorCode() ); if (e.checkFaultMessage() == true) { System.err.println("Exception ProcessInstanceID = " + e.getProcessInstanceID() ); System.err.println("Exception FaultCode = " + e.getFaultCode() ); System.err.println("Exception FaultString = " + e.getFaultString() ); System.err.println("Exception FaultActor = " + e.getFaultActor() ); System.err.println("Exception FaultDetails = " + new String(e.getFaultDetail(), "UTF-8")); System.err.println("Exception FaultName = " + e.getFaultName() ); } } :
(2) CSCMsgServerExceptionクラス
サービスリクエスタが取得する例外クラスです。
(a) クラス定義
- パッケージ
jp.co.Hitachi.soft.csc.msg.message.reception
- クラス
public class CSCMsgServerException extends java.lang.Exception
(b) フィールドの一覧
フィールド名 |
データ型 |
説明 |
---|---|---|
errorMessage |
java.lang.String |
次に示す例外の内容です。
|
errorCode |
java.lang.String |
次に示す例外の内容に対応するエラーコードです。
|
processInstanceID |
java.lang.String |
ビジネスプロセスのインスタンスIDの情報です。 ビジネスプロセスでエラーが発生した場合に値が設定されます。 |
cscmsgFaultCode |
java.lang.String |
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCode情報です。 |
cscmsgFaultString |
java.lang.String |
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultString情報です。 |
cscmsgFaultActor |
java.lang.String |
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultActor情報です。 |
cscmsgFaultDetail |
byte[] |
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報です。 |
faultName |
java.lang.String |
サービス部品(WebサービスまたはSessionBean),またはビジネスプロセスからのフォルト名(例外名)情報です。 次の場合に値が設定されます。
SOAP Fault動作定義ファイルにtargetNamespaceのURIを定義したWebサービスからのSOAP Faultの場合,値は設定されません。SOAP Fault動作定義ファイルについては,マニュアル「サービスプラットフォーム リファレンス」の「6.6.1 SOAP Fault動作定義ファイル」を参照してください。 |
(c) メソッドの一覧
メソッド名 |
データ型 |
説明 |
---|---|---|
getErrorMessage |
java.lang.String |
エラーメッセージを取得します。 |
getErrorCode |
java.lang.String |
エラーコードを取得します。 |
checkFaultMessage |
boolean |
サービス部品,ビジネスプロセス,またはサービスアダプタからのフォルト情報があるかどうかをチェックします。 |
getFaultCode |
java.lang.String |
FaultCode情報を取得します。 |
getFaultString |
java.lang.String |
FaultString情報を取得します。 |
getFaultActor |
java.lang.String |
FaultActor情報を取得します。 |
getFaultDetail |
byte[] |
Detail情報を取得します。 |
getProcessInstanceID |
java.lang.String |
ビジネスプロセスのインスタンスIDを取得します。 |
getFaultName |
java.lang.String |
フォルト名(例外名)を取得します。 |
(d) メソッドの詳細
- ●getErrorMessage
-
- 説明
-
エラーメッセージを取得します。
次の例外の内容を取得する場合に使用します。
-
HCSC-Messaging内で検知した例外
-
サービス部品またはビジネスプロセスからのフォルト
-
- 形式
-
public java.lang.String getErrorMessage()
- パラメタ
-
なし
- 戻り値
-
エラーメッセージ
- 例外
-
なし
- ●getErrorCode
-
- 説明
-
エラーコードを取得します。
次の例外の内容に対するエラーコードを取得する場合に使用します。
-
HCSC-Messaging内で検知した例外
-
サービス部品またはビジネスプロセスからのフォルト
-
- 形式
-
public java.lang.String getErrorCode()
- パラメタ
-
なし
- 戻り値
-
エラーコード
- 例外
-
なし
- ●checkFaultMessage
-
- 説明
-
サービス部品,ビジネスプロセス,またはサービスアダプタからのフォルト情報があるかどうかをチェックします。
サービス部品またはビジネスプロセスがWebサービスの場合,SOAP Faultとして返されたエラーの内容が含まれているかどうかチェックします。
また,サービスアダプタからの個別のエラーが含まれているかどうかをチェックします。
- 形式
-
public boolean checkFaultMessage()
- パラメタ
-
なし
- 戻り値
-
true:Faultメッセージ情報が存在します。
false:Faultメッセージ情報が存在しません。
- 例外
-
なし
- ●getFaultCode
-
- 説明
-
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultCode情報を取得します。
- 形式
-
public java.lang.String getFaultCode()
- パラメタ
-
なし
- 戻り値
-
faultcode
- 例外
-
なし
- ●getFaultString
-
- 説明
-
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultString情報を取得します。
- 形式
-
public java.lang.String getFaultString()
- パラメタ
-
なし
- 戻り値
-
faultstring
- 例外
-
なし
- ●getFaultActor
-
- 説明
-
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのFaultActor情報を取得します。
- 形式
-
public java.lang.String getFaultActor()
- パラメタ
-
なし
- 戻り値
-
faultactor
- 例外
-
なし
- ●getFaultDetail
-
- 説明
-
サービス部品(Webサービス),ビジネスプロセス,またはサービスアダプタからのDetail情報を取得します。
サービス部品が設定したDetail情報をバイト配列でサービスリクエスタに引き渡します。したがって,取得したバイト配列を文字列に変換する必要があります。
- 形式
-
public byte[] getFaultDetail()
- パラメタ
-
なし
- 戻り値
-
detail
- 例外
-
なし
- ●getProcessInstanceID
-
- 説明
-
ビジネスプロセスのインスタンスIDを取得します。
- 形式
-
public String getProcessInstanceID()
- パラメタ
-
なし
- 戻り値
-
String
- 例外
-
なし
- ●getFaultName
-
- 説明
-
フォルト名(例外名)を取得します。
- 形式
-
public String getFaultName()
- パラメタ
-
なし
- 戻り値
-
String
- 例外
-
なし
(e) サブクラスの一覧
クラス名 |
サブクラス名と説明 |
|
---|---|---|
CSCMsgServerException |
|
|
|
||
|
||
|
|
|
|
||
|
||
|
||
|
− |
|
|
− |