ページの先頭行へ戻る
Interstage Application Server V13.0.0 GlassFish 設計・構築・運用ガイド
FUJITSU Software

3.1.13 Jakarta EEアプリケーションからCORBAサービスアプリケーションの呼出し方法

CORBAサービス環境上で動作しているCORBAサーバーアプリケーションを呼び出すJakarta EEアプリケーションの開発および運用方法について説明します。

アプリケーション開発手順

  1. アプリケーションのインターフェイス定義(IDL)の記述

  2. IDLファイルのコンパイル

  3. クライアントアプリケーションのプログラミング

  4. アプリケーションのコンパイル

(1)アプリケーションのインターフェイス定義(IDL)の記述

呼出し対象のCORBAサーバーアプリケーションのインターフェイスが定義されているIDLファイルを記述します。


(2)IDLファイルのコンパイル

IDLファイルのコンパイルには、以下のようにCORBAサーバーアプリケーションが動作している環境のIDLcコマンドを使用します。

IDLc -java -javastubonly sample.idl


(3)クライアントアプリケーションのプログラミング

CORBAサーバーアプリケーションを呼び出す場合、サーバーアプリケーションのコード系に合わせてGlassFish上のCORBAクライアントアプリケーションでコード変換を行うためのプロパティを設定する必要があります。
ORB.init()の第2引数(Java VM起動時に渡すシステムプロパティ)に、必ず以下のプロパティを定義してください。

Properties props = new Properties();
props.put("com.sun.corba.ee.encoding.ORBCodeConversionUseUnitOfIOR","true");
Orb = org.omg.CORBA.ORB.init(args, props);

注意

リクエストを送信するたびに引数付きのORB.init()メソッドを発行すると、発行した数だけ、コネクション運用資産が作成されます。

このため、引数付きのORB.init()メソッドはアプリケーションで1回だけ発行してください。

ネーミングサービスのオブジェクトリファレンスは、以下のいずれかの方法で取得してください。

  • ORBイニシャルリファレンス引数“-ORBInitRef”を指定する
    ORBイニシャルリファレンス引数“-ORBInitRef”は、クライアントが必要とするイニシャルサービスをサービス名ごとに指定します。

    ORBイニシャルリファレンス引数“-ORBInitRef”を使用した設定例を示します。
    ホストおよびポートには、ネーミングサービスが動作しているマシンのCORBAサービスに指定したホストおよびポート番号を指定します。

    String[ ] orbArgs = new String[ 2 ] ;
    orbArgs[ 0 ] = "-ORBInitRef" ;
    orbArgs[ 1 ] = "NameService=corbaloc:iiop:1.0@ホスト:ポート/NameService";
    Orb = ORB.init( orbArgs, nullprops);
    org.omg.CORBA.Object _tmpObj = Orb.resolve_initial_references( "NameService" );
  • corbaloc URLスキーマを指定する
    string_to_object()にcorbaloc URLスキーマを指定して取得します。

    corbaloc URLスキーマで指定した設定例を示します。
    ホストおよびポートには、ネーミングサービスが動作しているマシンのCORBAサービスに指定したホストおよびポート番号を指定します。

    org.omg.CORBA.Object _tmpObj =
    Orb.string_to_object("corbaloc:iiop:1.0@ホスト:ポート/NameService");

(4)アプリケーションのコンパイル

Jakarta EEアプリケーションのコンパイル対象に、IDLc生成物を追加して、コンパイルを実施してください。


ORB(Object Request Broker)の指定

アプリケーションで使用するORBとして、IIOPサービス(Jakarta EEクライアント)を指定します。
ORBの指定方法として以下の方法があります。以下のいずれかの方法で、使用するORBを指定してください。
なお、GlassFish Serverクラスターおよびappclientコマンドを使用する場合は、指定不要です。

どの方法も、以下のプロパティ情報を設定することにより、IIOPサービス(Jakarta EEクライアント)のORBを指定します。

プロパティ名

設定値(Jakarta EEクライアントを使用)

org.omg.CORBA.ORBClass

com.sun.corba.ee.impl.orb.ORBImpl

org.omg.CORBA.ORBSingletonClass

com.sun.corba.ee.impl.orb.ORBSingleton

ORB.init()の引数で指定する方法

ORB.init()の第2パラメタで指定します。

Properties props = new Properties();
props.put("org.omg.CORBA.ORBClass","com.sun.corba.ee.impl.orb.ORBImpl");
props.put("org.omg.CORBA.ORBSingletonClass","com.sun.corba.ee.impl.orb.ORBSingleton");
Orb = org.omg.CORBA.ORB.init(args, props);
アプリケーション起動時に指定する方法

Javaアプリケーション実行時に、javaコマンドのパラメタとしてプロパティ情報を設定します。以下のように-Dオプションに続けて必要な情報を記述します。

java -Dorg.omg.CORBA.ORBClass=com.sun.corba.ee.impl.orb.ORBImpl
     -Dorg.omg.CORBA.ORBSingletonClass=com.sun.corba.ee.impl.orb.ORBSingleton
     <アプリケーションのクラス名>
環境設定ファイルを用意する方法

プロパティ情報を記述したテキストファイル(ファイル名:orb.properties)を作成し、インストールされているパッケージおよび使用するJDK/JREによって異なる以下の格納先に格納します。

ファイルorb.propertiesの内容
org.omg.CORBA.ORBClass=com.sun.corba.ee.impl.orb.ORBImpl
org.omg.CORBA.ORBSingletonClass=com.sun.corba.ee.impl.orb.ORBSingleton
格納先
C:\Interstage\openjdk\jdk8\jre\lib
/opt/FJSViaps/openjdk/jdk8/jre/lib

CLASSPATHの指定

スタンドアロンクライアントの場合、IIOPサービス(Jakarta EEクライアント)が提供しているJakarta EEランタイムをCLASSPATH環境変数に指定する必要があります。
以下のjarファイルをCLASSPATH環境変数に指定してください。

jarファイル名

格納場所

appserv-rt.jar

C:\Interstage\glassfish5\glassfish\lib

jarファイル名

格納場所

appserv-rt.jar

/opt/FJSViaps/glassfish5/glassfish/lib

注意

以下のランタイムは、CLASSPATH環境変数に指定しないでください。

  • マルチ言語サービスのCORBAサービスが提供しているCORBA-Javaランタイム

    • ODjava4.jar

    • ODporb4.jar

    • CosNaming4.jar

    • InterfaceRep4.jar

  • サーバーで使用しているGlassFishのバージョン以外のGlassFishランタイム

    • appserv-rt.jar

    • gf-client.jar