!!!技術的雑談-JacORBのInstall !!環境 WindowsXP Professional SP2 JDK1.5.0 P03 JacORB 2.2.1 fullをJDK1.5.0_03でコンパイルして使用 ant 1.6.3 後で、Linux Fedoracore3も少々。 !!用意 *JacORBをDownload http://www.jacorb.org/から、Download→Full version with source code.(Zip format) *Antが必要なみたいなので、もっていない人はDownload http://ant.apache.org/から、左メニューの「Download Binary Distoributions」→ちょっと下にスクロールした「Current Release of Ant 」の下の「.zip archive」からダウンロード *JDKのパスをセットします **マイコンピュータのプロパティーを開き、詳細タブから「環境変数」をクリック。 **下の段(コンピュータ全体)の「新規作成」をクリックし、「JAVA_HOME」という環境変数を作ります。値はJDK1.4.xかJDK1.5.xのインストールしてあるディレクトリにします。(例: C:\j2sdk1.4.2_07) **OracleのClientやServerがInstallしてある人は、これをやったあとに起動できなくなるかもしれないので注意してください。 !!AntのInstall *Ant〜.zipをC:\antなど、わかりやすいところに展開します。(長いところや間にスペースの入るパスにはおかないこと) *コンピュータ全体の環境変数に「ANT_HOME」という環境変数を追加し、今Antを展開したディレクトリパス(C:\ant)を設定します。 *Path環境変数の最後にでも「;C:\ant\bin」を加えます。(セミコロンを忘れないように!) *コマンドプロンプトを開いて「ant -version」と打って、「Apache Ant version 1.6.3 compiled on April 28 2005」などと表示されれば成功。 *出てこない場合はJDKがちゃんとセットされているか、Pathが通っているか確認しましょう。 !!JacORBのInstall *JacORBをインストールするディレクトリを決めます。ここではC:\JacORB-2.2.1にします。 *C:\JacORB-2.2.1ディレクトリを作成し、ダウンロードしたJacORB〜.zipをここに解凍します。 *環境変数CLASSPATHを追加します。既にある場合は追記してください。 *CLASSPATHに「C:\JacORB-2.2.1\classes;C:\JacORB-2.2.1\lib;c:\ant\lib;C:\JacORB-2.2.1\lib\logkit-1.2.jar」を追記します。 *解凍されたC:\JacORB-2.2.1\etc\orb.propertiesを今使っているJDKのlibディレクトリにコピーします。(例: C:\jdk1.5.0_03/lib) *JacORBを解凍したディレクトリでコマンドプロンプトを開いて、「ant」と打ってJacORBのコンパイルを行います。 エラーが出たらデバッグします。 *次に、同じコマンドプロンプトで「ant jaco」を実行します。エラーが出たらデバッグします。 *(どこでもいいのですが、)NamingServiceのデータファイルを置く場所を決めて、空のファイルを置きます。(ここではC:\NS\nameserviceという空ファイルを作りました。) *C:\JacORB-2.2.1\etcディレクトリのjacorb_properties.templateをjacorb.propertiesという名前で同じディレクトリ(C:\JacORB-2.2.1\etc)にコピーします。 *jacorb.propertiesファイルの中の「ORBInitRef.NameService」という部分を探します。1行だけコメントアウトが外れているはずですので、そこを「ORBInitRef.NameService=file:///c:/NS/nameservice.txt」に修正します。 *同ファイルの下のほう(620行目のあたり)の「jacorb.naming.ior_filename」を、上の「ORBInitRef.NameService」と同じ値に設定します。こっちはNamingServiceのIOR蓄積ファイルの場所です。他にNamingServiceが立ち上がっている場合はそれのURLを指定することもできるようです(未確認) *先ほど設定した場所に、空のファイルを同じ名前で作ってください。(c:\NS\nameservice.txt) *同ファイルには他にもイロイロ設定がありますので、わかる人はチューニングしてください。 これで一応JacORBの動作環境が出来上がったはずです。 !!NamingServerの立ち上げ コマンドプロンプトを開いて、 ns で、NamingServerが立ち上がります。 C:\JacORB-2.2.1>ns [ configuration jacorb loaded from file C:\JacORB-2.2.1\etc\jacorb.properties ] [jacorb.orb] INFO : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ JacORB V 2.2, www.jacorb.org (C) Gerald Brose, XTRADYNE Technologies/FU Berlin, 7-May-2004 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In CSInfoInt ctor [jacorb.orb.intercept] INFO : InterceptorManager started with 0 SIs, 0 CIs and 1 IORIs In CSInfoInt establish_components, with tags [jacorb.naming] INFO : NS up [jacorb.orb] INFO : ORB run と、表示されて表示が固まります。 NamingServiceを止めたい時は、Ctrl+Cで止めます(^^; !!CORBAアプリケーションの実行(?) コマンドプロンプトを開いて、 jaco クラス名 で立ち上がります。 (CLASSPATH環境変数に立ち上げたい.classファイルが含まれていることが必要です。) !!付属テストアプリの実行 折角Installしたんだから通信できることを確認しましょう。 !デモのコンパイル *JacORBをインストールしたディレクトリ(C:\JacORB-2.2.1)の下、demo\helloに移動します。コマンドプロンプトを開きます。 *中のファイルに2箇所修正が必要です。(javaコンパイラで文字化けします。) **「Client.java」の60行目、「goodDay.hello_wide(」内のメッセージを何か適当な文字列に書き換えましょう。 **「GoodDayImpl.java」の23行目、「return」の戻り値を何か好きなメッセージに置き換えます。 *Antが設定されていることが前提ですが、そこでコマンドプロンプトから「ant」を実行します。 *コンパイルが行われます。(何か警告が出たらチェックしましょう。) *配下に「generated」というフォルダができているはずです。 !デモの実行 まず、サーバ側、 このデモではNamingServiceを使わないで、直接ファイルでIORを渡すので、 jaco demo.hello.Server <IOR格納ファイル名> で実行します。 C:\JacORB-2.2.1\demo\hello>jaco demo.hello.Server iorfile.txt [ configuration jacorb loaded from file C:\JacORB-2.2.1\etc\jacorb.properties ] [jacorb.orb] INFO : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ JacORB V 2.2, www.jacorb.org (C) Gerald Brose, XTRADYNE Technologies/FU Berlin, 7-May-2004 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In CSInfoInt ctor [jacorb.orb.intercept] INFO : InterceptorManager started with 0 SIs, 0 CIs and 1 IORIs [jacorb.poa] INFO : oid: 00 14 11 43 47 43 15 18 01 0A 37 ...CGC....7 object is activated In CSInfoInt establish_components, with tags [jacorb.orb] INFO : ORB run Socket port: 1871 サーバはそのまま待機状態になります。 別にコマンドプロンプトを開いて、できたIORファイルの中身を確認します。 C:\JacORB-2.2.1\demo\hello>type iorfile.txt IOR:000000000000001B49444C3A64656D6F2F68656C6C6F2F476F6F644461793A312E300000000000010000000000000070000102000000000E3139322E392E3230302E31343100074F0000001C5374 616E64617264496D706C4E616D652F0014114347431518010A37000000020000000000000008000000004A414300000000010000001C0000000000010001000000010501000100010109000000010501 0001 こんな感じで16進数の羅列です(^^;) 次にクライアント側を実行します。 先ほど、サーバの起動でパラメータに与えたIORファイルを指定します。 jaco demo.hello.Client <IOR格納ファイル名> 実行例 C:\JacORB-2.2.1\demo\hello>jaco demo.hello.Client iorfile.txt [ configuration jacorb loaded from file C:\JacORB-2.2.1\etc\jacorb.properties ] [jacorb.orb] INFO : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ JacORB V 2.2, www.jacorb.org (C) Gerald Brose, XTRADYNE Technologies/FU Berlin, 7-May-2004 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In CSInfoInt ctor [jacorb.orb.intercept] INFO : InterceptorManager started with 0 SIs, 0 CIs and 1 IORIs [jacorb.orb.giop] INFO : ClientConnectionManager: created new conn to target 10.0.0.1:1871 [jacorb.orb.iiop] INFO : Connected to 10.0.0.1:1871 from local port 2132 Hello World, from Somewhere wide string: おはよ〜〜ございます C:\JacORB-2.2.1\demo\hello> という具合に、サーバ側からのメッセージ文をCORBA経由で受け取って、表示して終了します。 その際、サーバ側には、 [jacorb.orb.iiop] INFO : Opened new server-side TCP/IP transport to 10.0.0.1:1872 The message is: テストのJacORBのあぷりです〜(^^)v [jacorb.orb.iiop] INFO : Closed server-side transport to 10.0.0.1:1872 と、クライアント側から送られたメッセージ文が表示されます。 双方向に通信できていることが確認できます。 !!履歴 2005/7/14 -- 初版 [[技術的雑談]]へ戻る !!突っ込み {{comment}} [[技術的雑談]]へ戻る {{trackback}} [[技術的雑談]]へ戻る