サーバー側ファイルを完成させる

サーバー側 CORBA プログラムファイルを生成した後、実装クラスとサーバークラスを完成させるためにいくつかのコーディングを行います。

実装クラスを完成させる

CORBA ウィザードを使用して実装クラスを生成した場合は、実装クラスの ビジネスメソッド (IDL に宣言されたメソッド) にメソッド本体を追加する必要があります。

実装クラスは、ビジネスメソッドによって呼び出される非公開メソッド (IDL に宣言されない) を 持つこともできます。 CORBA テンプレートを使用してサーバープログラムを生成した場合は、 実装クラスを手作業でコーディングする必要があります。

サーバークラスを完成させる

サーバークラスに追加しなければならないコードは、使用するバインド方式によって異なります。

実装クラスをインスタンス化して ORB に接続するコードを追加する

  1. 生成されたサーバークラスで次のコメントを見つけます。このコメントは、最初の方にあります。

    // add code to instantiate your object implementation here

  2. このコメントの下に、次の例に示すようなコードを 1 行追加します。これは、実装クラスをインスタンス化して、 サーバントインスタンスを作成するものです。

    HelloImpl helloServant = new HelloImpl();

  3. 生成されたサーバークラスの中から次の行を見つけます。

    orb.connect (/* add your object implementation here */);

  4. このコメントをサーバントインスタンスに使用した名前で置換します。 次に例を示します。

    orb.connect (helloServant);

標準出力に IOR を書き込むコードを追加する

  1. 生成されたサーバークラスの中から次の行を見つけます。

    System.out.println (orb.object_to_string (/* place your object implementation here */));

  2. 次の例に示すように、コメント化されていたパラメータをサーバントインスタンスで置換します。

    System.out.println (orb.object_to_string (helloServant));

ファイルに IOR を書き込むコードを追加する

  1. 生成されたサーバークラスで次の行を見つけます。

    String ior = orb.object_to_string (/* place your object implementation here */);
    try {
         FileWriter file = new java.io.FileWriter("<file_name>");
         ...

  2. 次の例に示すように、コメント化されていたパラメータをサーバントインスタンス、および IOR を書き込むファイル名で置換します。

    String ior = orb.object_to_string (helloServant);
    try {
         FileWriter file =
              new java.io.FileWriter("helloServant.ior");

         ...

バインディング名を指定するコードを追加する

  1. サーバーを登録するネームサービスを起動します。

  2. IDE で、エクスプローラウィンドウの「実行時」タブに切り替えます。

  3. CORBA モジュールのネームサービスブラウザを起動して、前の手順で起動したネームサービスを指定します。

  4. 各自のサーバーは既存のネーミングコンテキストに追加するか、または独自の新しいコンテキストを作成できます。

    新しいネーミングコンテキストを作成するには、次の手順を実行します。

    1. JDK ネームサービスのノードを右クリックします。コンテキストメニューから、 「新規コンテキストを作成」を選択します。

      小さいダイアログが開きます。

    2. ダイアログの「名前」フィールド、 および「種類」フィールドに作成するコンテキストを表わす名前、および種類を入力して、「了解」をクリックします。

      新しいサブノードが、JDK ネームサービスのノードの下に表示されます。 これで、サーバントインスタンスを登録するネーミングコンテキストが作成されました。

      この手順で使用した名前は便宜上のものです。内容を示す名前として選択しました。

  5. サーバーを登録する予定のネーミングコンテキストを表すノードを右クリックします。コンテキストメニューから、「サーバーバインドコードをコピー」を選択します。

  6. 編集ウィンドウに切り替え、生成されたサーバークラスで次のコメントを見つけます。

    // paste code retrieved using the Copy Server Code action (on a context node in the Naming Service Browser)

  7. この行の下にカーソルを移動して、CTRL+V を押します。

    ペーストしたコードは、ネームサービス、およびネームサービスブラウザで選択したネーミングコンテキストにオブジェクトを登録します。

  8. サーバントインスタンスに使用する名前を指定して、ペーストしたコードを完成させる 必要があります。

    1. <name of server> 変数を見つけて、サーバント名を " " で囲んだ文字列で置換します。

    2. <kind of server> 変数を見つけて、サーバーの種類を示す demo で置換します。

      (この名前は便宜上のものであり、アプリケーションを説明する名前として選択しました。)

  9. 次のコメントを見つけます。

    nc.bind(aName, /* place here name of servant variable */);

  10. コメント化されていたパラメータを hImplで置換します。この行は次のようになります。

    nc.bind (aName, hImpl);

サーバーをコンパイルする

最後の手順では、サーバーに関連するすべてのクラスを、IDL も含めてコンパイルします。 パッケージのノードを右クリックして、コンテキストメニューから「コンパイル」を選択します。


著作権と商標について