Cosminexus ビジネスプロセス管理/エンタープライズサービスバス V8 サービスプラットフォーム 開発ガイド
要求先のサービス部品,HCSCサーバ,およびSOAPエンジンでエラーが発生した場合,エラー情報を取得し,その情報に従って対処します。
エラーの伝わり方については,マニュアル「Cosminexus サービスプラットフォーム システム構築・運用ガイド」の「7.7.1 Webサービス(SOAP通信)実行時の障害対策」を参照してください。
エラー情報の取得方法は,SOAP通信基盤の種類によって異なります。
{
try {
:
// Webサービス呼び出し
:
} catch (xxxxxxxxxxException e) {
:
} catch (C4Fault e) {
:
}
}
|
{
try {
:
} catch (xxxxxxxxxxException e) {
:
} catch (C4Fault e) {
// C4FaultからFault情報を取得
System.out.println("C4Fault Message = " + e.getMessage());
System.out.println("C4Fault FaultCode = " + e.getFaultCode());
System.out.println("C4Fault FaultActor = " + e.getFaultActor());
System.out.println("C4Fault FaultString = " + e.getFaultString());
// C4FaultからDetailを取得
Element ele[] = e.getFaultDetails();
printElement(ele);
}
}
/**
* Print Element
*/
private static void printElement(Element[] ele) {
int eleNumber = ele.length;
System.out.println("Element count = " + eleNumber);
for (int i=0; i<eleNumber; i++) {
// Element配列からNodeListを取得
if (ele[i] != null) {
printNodeList(ele[i].getChildNodes());
} else {
System.out.println("Element[" + i + "] = null");
}
}
}
/**
* Print NodeList
*/
private static void printNodeList(NodeList nodelist) {
int nodelistcount = nodelist.getLength();
for (int j=0; j<nodelistcount; j++) {
Node node1 = nodelist.item(j);
NodeList nodelist1 = node1.getChildNodes();
int nodelist1len = nodelist1.getLength();
if (nodelist1len == 0) {
System.out.println("empty ChildNode");
} else if(nodelist1len == 1) {
Node node2 = node1.getFirstChild();
if(node2 != null) {
System.out.println("ChildNode[" + j + "] getTextContent = "
+ node2.getTextContent());
} else {
System.out.println("ChildNode[" + j + "] = null");
}
} else {
printNodeList(nodelist1);
}
}
}
|
表10-19 getFaultDetails()メソッドを使用して取得したElement[]の構造
| 名称 | 説明 |
|---|---|
| errorMessage | HCSCサーバ内で発生した例外に設定されているエラーメッセージです。 |
| errorCode | HCSCサーバ内で発生した例外に対応するエラーコードです。 |
| processInstanceID | ビジネスプロセスのインスタンスIDの情報です。 HCSCサーバ内で発生した例外の場合は設定されていないため,null(nil属性)になります。 |
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.