CORBAサービス環境上で動作しているCORBAサーバアプリケーションを呼び出すJava EEアプリケーションの開発および運用方法について説明します。
アプリケーション開発手順
呼出し対象のCORBAサーバアプリケーションのインタフェースが定義されているIDLファイルを記述します。
IDLファイルのコンパイルには、以下のようにCORBAサーバアプリケーションが動作している環境のIDLcコマンドを使用します。
なお、使用可能なIDLc生成物は、V9.2以降のIDLcが生成したIDLc生成物です。
V10以降のIDLcを使用する場合
IDLc -java -javaee sample.idl
V10より前のバージョンのIDLcを使用する場合
IDLc -java sample.idl
CORBAサーバアプリケーションを呼び出す場合、サーバアプリケーションのコード系に合わせてJava EE 7実行環境上の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");
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()の第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によって異なる以下の格納先に格納します。
org.omg.CORBA.ORBClass=com.sun.corba.ee.impl.orb.ORBImpl org.omg.CORBA.ORBSingletonClass=com.sun.corba.ee.impl.orb.ORBSingleton
【Interstage Studioクライアント運用パッケージの場合】
JRE 8系使用時: <StudioのJREインストールパス>\jre8\lib
【Interstage Studio Standard-J Editionの場合】
JDK 8系使用時: <StudioのJDKインストールパス>\JDK8\jre\lib
【サーバパッケージ内の“JDK/JRE”の場合】
JRE 8系使用時: C:\Interstage\jre8\lib JDK 8系使用時: C:\Interstage\jdk8\jre\lib
【クライアントパッケージ内の“JBKプラグイン”の場合】
JRE 8系使用時: C:\Interstage\JBKDI\jre8\lib JDK 8系使用時: C:\Interstage\JBKDI\jdk8\jre\lib
JRE 8系使用時: <Java実行環境のインストールパス>/jre8/lib JDK 8系使用時: <Java実行環境のインストールパス>/jdk8/jre/lib
CLASSPATHの指定
スタンドアロンクライアントの場合、IIOPサービス(Java EEクライアント)が提供しているJava EE 7ランタイムをCLASSPATH環境変数に指定する必要があります。
以下のjarファイルをCLASSPATH環境変数に指定してください。
jarファイル名 | 格納場所 |
---|---|
appserv-rt.jar | <Interstageインストールフォルダ>\F3FMisje7\glassfish\lib |
jarファイル名 | 格納場所 |
---|---|
appserv-rt.jar | /opt/FJSVisje7/glassfish/lib |
注意
以下のランタイムは、CLASSPATH環境変数に指定しないでください。
マルチ言語サービスのCORBAサービスが提供しているCORBA-Javaランタイム
ODjava4.jar
ODporb4.jar
CosNaming4.jar
InterfaceRep4.jar
Java EE 6ランタイム
appserv-rt.jar
gf-client.jar