高度なカスタマイズ > サービスおよびインフラストラクチャのカスタマイズ > インポートとエクスポートのフレームワーク > IX アプリケーションの作成方法
  
IX アプリケーションの作成方法
エクスポートは、エクスポートアプリケーションを使用して開始します。エクスポートを起動するアプリケーションのコードは、以下のようになります。
ExportHandler appHandler = new ExportHandler ();
Exporter exporter = IxbHelper.newExporter(handle,
IxbHelper.STANDARD_DTD,
clientSettingsElement,
policyFile==null?(File)null:policyFile.getFile());
Iterator iter = objectSet.iterator();
while (iter.hasNext()) {
Persistable ob = (Persistable)iter.next();
exporter.doExport(ob);
}
exporter.finalizeExport();
appHandler.cleanUp ();
アプリケーションエクスポートハンドラ (appHandler) を作成します。これは、ApplicationExportHandler インタフェースの実装または抽象クラス ApplicationExportHandlerTemplate の拡張を行う任意のクラスのインスタンスです。StandardIXBService のエクスポートアプリケーションで、appHandlerApplicationExportHandlerTemplate のサブクラスである ApplicationExportHandlerForJar を拡張します。
appHandler のジョブは、以下のとおりです。
エクスポートオブジェクトを保存するファイルを作成します (JAR ファイルなど)。
クライアントに返されるログを保存します (オプション)。
テンポラリファイルのクリーンアップおよびその他のクリーンアップジョブを実行します (推奨オプション)。
作成するには、appHandler で以下のメソッドを実装する必要があります。
storeLogMessage(...) のメソッドを使用して、クライアントにログを返します。ログを返すメカニズムの実装方法は、開発者に一任されます。ログメッセージを送信しない場合は、エクスポートハンドラを使用して ApplicationExportHandlerTemplate を拡張します。このクラスには、デフォルトの storeLogMessage() があります (空のメソッド)。
ここでのクリーンアップおよびその他の終結タスクはオプションです。これらのジョブは、exporter.finalizeExport() の後に明示的に呼び出す必要があります。
エクスポートした XML を修正する必要がある場合は、出力を変換するためのタスクを実行するメソッドがアプリケーションエクスポートハンドラに含まれることがあります。たとえば、PDXExportHandler には、PDX フォーマットへの XSL 変換のためのメソッドがあります。これらのメソッドは、exporter.finalizeExport() の後に明示的に呼び出す必要があります。
アプリケーションエクスポートハンドラの既存の実装は、以下のとおりです。
PDXExportHandlerApplicationExportHandlerTemplate を拡張します。このクラスは、PDX フォーマットへのエクスポートに関連した特定のタスクを実行します。これには、追加の XML 属性やエレメントの作成、PDX フォーマットへの XSL 変換などが含まれます。
Exporter クラスのインスタンスを作成し、これを使用して exporter.doExport(obj) を呼び出してオブジェクトをエクスポートします。ここで、obj は、エクスポートのために収集されたすべての WT オブジェクトで実行されます。
その後、exporter.finalizeExport() を呼び出し、追加のタスク (別のフォーマットへの変換など) を実行し、appHandler のメソッドを呼び出してエクスポート処理の後のクリーンアップを実行し、クライアントにログメッセージを送信します。
doExport(…) メソッド、doExportImpl(…) メソッド、および StandardIXBService の内部クラス ExportHandler は、1 つのエクスポートアプリケーションの例です。エクスポートアプリケーションの例を参照してください。
前提条件
エクスポート jar ファイルをクライアントの特定の場所に作成するには、StandardIXBServicedoExport API を呼び出す前に、以下の前提条件が満たされている必要があります。
コンテキストキー ISBStreamer.CLIENT_SAVE_AS_FILE は、クライアント側の完全なファイルパスで設定する必要があります。
WTContext.getContext().put(IXBStreamer.CLIENT_SAVE_AS_FILE,CLIENT
JAR);
ここで、CLIENT_JAR はクライアント側の完全なファイルパスです (例: .c:\\mydocuments\\impex.jar)。