ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express Java EE運用ガイド
FUJITSU Software

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

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

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

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

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

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

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

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

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


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

IDLファイルのコンパイルには、以下のようにCORBAサーバアプリケーションが動作している環境のIDLcコマンドを使用します。
なお、使用可能なIDLc生成物は、V9.2以降のIDLcが生成したIDLc生成物です。

V10以降のIDLcを使用する場合

IDLc -java -javaee sample.idl

V10より前のバージョンのIDLcを使用する場合

IDLc -java sample.idl

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

CORBAサーバアプリケーションを呼び出す場合、サーバアプリケーションのコード系に合わせてJava EEクライアントでコード変換を行うためのプロパティを設定する必要があります。
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()メソッドは、アプリケーションで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)アプリケーションのコンパイル

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


ORB(Object Request Broker)の指定

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

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

プロパティ名

設定値(Java 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
格納先

【Interstage Studioクライアント運用パッケージの場合】

JRE6系使用時:
  <Java実行環境のインストールパス>\jre6\lib

【サーバパッケージ内の“JDK/JRE”の場合】

JRE 6系使用時:
  C:\Interstage\jre6\lib 
JDK 6系使用時:
  C:\Interstage\jdk6\jre\lib

【クライアントパッケージ内の“JBKプラグイン”の場合】

JRE 6系使用時:
  C:\Interstage\JBKDI\jre6\lib 
JDK 6系使用時:
  C:\Interstage\JBKDI\jdk6\jre\lib
JRE 6系使用時:
  <Java実行環境のインストールパス>/jre6/lib 
JDK 6系使用時:
  <Java実行環境のインストールパス>/jdk6/jre/lib
JRE 6系使用時:
  <Java実行環境のインストールパス>/jre6/lib 
JDK 6系使用時:
  <Java実行環境のインストールパス>/jdk6/jre/lib

CLASSPATHの指定

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

jarファイル名

格納場所

appserv-rt-client.jar

<Interstageインストールフォルダ>\F3FMisjee\lib

jarファイル名

格納場所

appserv-rt-client.jar

/opt/FJSVisjee/lib

注意

マルチ言語サービスのCORBAサービスが提供しているCORBA-Javaランタイム(ODjava4.jar/ODporb4.jar/CosNaming4.jar/InterfaceRep4.jar)は、CLASSPATH環境変数に指定しないでください。