![]() |
ADOS Developer's Site - XML Stadium |
![]() |
![]() |
|
![]() |
【JavaObjectのハンドリング】メッセージコンテナ †Hestiaは、EISとメッセージのやりとりを行う際にビジネスメッセージをJava Objectとして扱います。 下記にビジネスメッセージに対応したJava Objectのクラス図を示します。 Container †HestiaとEIS間でメッセージ連携を行う際は、メッセージの容れ物であるContainerオブジェクトがやりとりされます。実際には、Containerクラスはabstractであり、PayloadContainerまたはStatusContainerにてインスタンス化されます。 FIFOIndexはオブジェクトインスタンス生成時に自動設定されますが、 ユーティリティクラスよりインデックスを取得しsetFIFOIndex()によって再定義することも可能です。 ログトレースIDについても同様で、インスタンス生成時に自動設定されます。再定義も可能です。 PayloadContainer †ビジネスメッセージ本体のServiceContent、および添付ファイルに対応するAttachmentオブジェクトのコンテナです。 ServiceContent †RosettaNetのパブリックプロセスにおけるActionメッセージ(RosettaNetのPIP、Chem eStandardsのビジネスメッセージ)本体です。公開APIにおいては、XMLメッセージとServiceContentの相互変換、およびXMLのXPathリストからServiceContentインスタンスを作成する関数群が公開されています。 Attachment †ビジネスメッセージに添付されたファイルへのインターフェースを提供します。 Attachmentオブジェクト自体は添付ファイルの実体を持っておらず、ファイルの実体はHestiaの内部データベースに格納されていますが、EISはAttachmentオブジェクトが提供するAPI関数を利用しそれを意識せずに透過的にファイル実体のストリームへアクセスできます。 StatusContainer †RosettaNetのパブリックプロセスにおけるSignalメッセージ(ReceiptAcknowledgment, Exception等)を示すオブジェクトです。また、Signalメッセージに該当しないトランザクションの状態*1についても利用されます。 isSuccess()メソッドがfalseを返す場合、パブリックプロセストランザクションは正常終了していません。その際、getCode()およびgetDescription()で原因を調査することができます。 StatusContainer生成後、トレースIDにPayloadContainer#getLogTraceID()より得られるトレースIDを設定することにより、Hestiaが出力するトランザクションログにて一貫したトレースIDでのトランザクショントラッキングが可能となります。 サンプルコード †XMLからServiceContentへの変換 †サンプル実装をご参照下さい。XMLファイルからServiceContentオブジェクトへの変換例です。 ServiceContentからXMLの抽出 †サンプル実装をご参照下さい。ServiceContentオブジェクトからXMLファイルへの保存例です。 XPathリストからServiceContentの作成 †サンプル実装 をご参照下さい。 PIP0C1 R01.02.00のXPathリストからServiceContentを構築するサンプルです。指定するXPathはルート要素を除いた値を指定します。 Attachmentオブジェクトから実ファイルへの保存 †サンプル実装 をご参照下さい。 |
Copyright 2005-2008. ADOS Co., Ltd. All Rights Reserved. |