Java セッション Bean タイプの外部オブジェクト (EO) により、JEE サーバーにホストされている Java セッション Bean を呼び出すことができます。
Java セッション Bean 外部オブジェクトは、コンテキストパラメーターや EJB インターフェースなど、Session EJB を呼び出すのに必要なすべての情報を格納します。この外部オブジェクトを定義すると、ほかの GeneXus オブジェクトと同じように、EJB を呼び出すことができます。
[ Name ] : 外部オブジェクトの名前
[ Description ] : 外部オブジェクトのデスクリプション
[ Type ] : 外部オブジェクトのタイプ、Java セッション Bean
[ EJB Version ] : 呼び出される EJB のバージョン (2.x または 3.x)
[ EJB Home Object ] : EJB ホームまたはローカルホームのインターフェース (EJB Version = 2.x の場合のみ適用)
[ EJB Object ] : EJB コンポーネントのインターフェース
[ EJB JNDI Name ] : EJB を参照する JNDI 名
Specify JNDI context properties: EJB 検索のコンテキストプロパティを指定する必要がある場合は Yes に設定し、指定する必要がない場合は No に設定
[ Object Visibility ] : 別のモジュール内の他のオブジェクトからのアクセシビリティ
[ Specify JNDI context properties ] = YES の場合、次のプロパティが表示されます:
[ INITIAL_CONTEXT_FACTORY ] : 初期コンテキスト ファクトリー クラス
[ PROVIDER_URL ] : EJB が配置されているプロバイダー URL
[ SECURITY_PRINCIPAL ] : 認証するプリンシパル
[ SECURITY_CREDENTIALS ] : プリンシパルを認証するのに使用する証明書
[ Internal Name ] : メソッドの内部名
[ Description ] : デスクリプション
[ Type ] : 返される値のデータタイプ (値を返す場合)
[ External Type ] : 返される値の外部データタイプ
[ External Name ] : メソッドの外部名
[ Access Type ] : 入力のみのパラメーター、出力のみのパラメーター、または入出力パラメーターの区別
[ Internal Name ] : パラメーターの内部名
[ Description ] : パラメーターのデスクリプション
[ Type ] : GeneXus におけるパラメーターのデータタイプ
[ External Type ] : パラメーターの外部データタイプ
ほかのサーバーに配置されている Session EJB を呼び出すとします。基本的には次の 2 つの手順に従います:
- Session EJB に基づいて外部オブジェクトを作成します。
- EJB の呼び出しに必要な GX コードを記述します。
最初の手順では、呼び出しに必要な EJB インターフェースを含む JAR パッケージを Session EJB の開発者から受け取る必要があります。JAR ファイルを受け取ったら、モデルクラスパスに配置して、JAR ファイル内で提供されているインターフェースに基づいて外部オブジェクトを作成します (JNDI 名およびそのコンテキストプロパティを指定する必要もあります)。さらに、EJB (EJBLocalHome、EJBLocalObject の実装を含む) を呼び出す場合に必要な
標準のクラスを JAR ファイルに追加します。この JAR ファイルは呼び出す EJB のバージョン (2.x または 3.x) によって異なり、ファイル名は ejb.jar、ejb3.jar、またはそれに類似するものになります。
外部オブジェクトを定義したら、ほかの GX オブジェクトと同様に使用できます。次に例を示します:
Event Enter
&first = "Hello "
&second = "Session Beans"
&concat = &externalObj.Concat(&first, &second)
msg(&concat) //"Hello Session Beans" と表示
EndEvent
&externalObj は Session EJB 用の外部オブジェクトに基づく変数であり、&concat-&first-&second は文字変数、Concat は EJB 内のメソッドと一致する外部オブジェクト内のメソッドです。例に示すとおり、呼び出された Concat は 2 つの文字変数を連結して返します。
GeneXus のデプロイメントウィザードでアプリケーションをデプロイする場合、EJB プロバイダーの JAR ファイルをライブラリーとして追加する必要があります。