Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編


7.10 カスタムファンクションで使用するJavaプログラムの作成

カスタムファンクションを使用すると,任意のJavaプログラムをファンクションとして使用できます。Service Architectが提供するほかのファンクションではできない加工をしたい場合にカスタムファンクションを使用します。

カスタムファンクションには次の種類があります。

引数がObject型のカスタムファンクションには,単純内容要素,複合内容要素,any要素,またはanyAttribute属性などノード自身を渡すことができます。

実際に引数に渡されるデータ型は,次のように引数の内容によって異なります。

表7‒7 引数の定義内容

引数の内容

引数の実際の型

単純内容要素・複合内容要素

org.w3c.dom.NodeList

属性

org.w3c.dom.NodeList

any要素

org.w3c.dom.NodeList

anyAttribute属性

org.w3c.dom.NodeList

文字列型カスタムファンクション

java.lang.String

ノード一覧型カスタムファンクション

org.w3c.dom.NodeList

そのほかのファンクション

java.lang.String

注※

くり返しファンクション,選択ファンクションは除きます。また,引数(マッピング元)がXPathファンクションの場合,カスタムファンクションに渡される引数の型は,XPath式の評価結果によってjava.lang.Stringまたはorg.w3c.dom.NodeListになります。

ここでは,カスタムファンクションから呼び出すJavaプログラムの作成方法について説明します。なお,カスタムファンクションでは,呼び出すJavaプログラムのことを変換ファンクションと呼びます。Javaプログラムを呼び出す方法については,「7.5.23 ユーザが作成した任意のJavaプログラムを呼び出す」を参照してください。

変換ファンクションは,次の手順で作成します。

  1. 変換ファンクション定義ファイルの作成

    変換ファンクションの構成を定義した変換ファンクション定義ファイルを作成します。変換ファンクション定義ファイルの作成方法については,「7.10.1 変換ファンクション定義ファイルの作成」を参照してください。

  2. Java雛形ファイルの生成

    作成した変換ファンクション定義ファイルを基に,Javaプログラムのコーディング時に使用するJava雛形ファイルを生成します。Java雛形ファイルの生成方法については,「7.10.2 Java雛形ファイルの生成」を参照してください。

  3. Javaプログラムのコーディング,ビルド,およびデバッグ

    Java開発ツールを使用して,Javaプログラムのコーディング,ビルド,およびデバッグを実施します。Javaプログラムのコーディング,ビルド,およびデバッグ方法については,「7.10.4 Javaプログラムのコーディング,ビルド,およびデバッグ」を参照してください。

  4. Javaプログラムのパッケージング

    ビルドツールを使用して,作成したJavaプログラムをjarファイルにパッケージングします。Javaプログラムのパッケージング方法については,「7.10.5 Javaプログラムのパッケージング」を参照してください。

注意事項
  • 呼び出すJavaプログラムの引数の数に応じてメモリ所要量(スタックメモリ)が増加します。そのため,引数が多いとスタックオーバーフローのエラーが発生するおそれがあります。引数は,多くても10個程度を目安としてください。

  • Javaプログラムの呼び出し時に確保したリソースは,処理が終了しても保持し続けるため,システム全体に高い負荷がかかった場合に,Javaヒープ不足やMetaspace領域不足などが原因でOutOfMemoryErrorが発生することがあります。そのため,OutOfMemoryErrorが発生したときに適切にリソースを解放する処理や,ロールバックなどのエラー処理を実装しておく必要があります。

〈この節の構成〉