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.