クライアント側ファイルを完成させる

RMI モジュールは次の例のような main() メソッドを使ってクライアント側ファイルを生成します。

public static void main (String[] args) {
   System.setSecurityManager (new RMISecurityManager());
}

クライアントクラスを完成させるには、正しい RMI サーバーへの参照を返す lookup() 呼び出しを追加する必要があります。この後、参照を使ってサーバー側メソッドを呼び出すことができます。

lookup() 呼び出しを追加する

  1. RMI サーバープログラムが実行されている必要があります。どの RMI レジストリに登録されているかを把握している必要があります。大規模な開発プロジェクトでは、サーバーはシステム管理者または他の開発者に管理されていることもあります。開発作業をすべて自分で行なっている場合なら、サーバーを自分で起動できます。
  2. RMI モジュールのレジストリブラウザを起動し、RMI サーバーを登録するレジストリを指定します。
  3. レジストリブラウザの「RMI レジストリ」ノードを開きます。ノード階層から RMI サーバーのリモートインタフェースを表すサブノードを見つけます。
  4. リモートインタフェースノードをマウスの右ボタンでクリックします。コンテキストメニューが開くので、ここから「クライアントコードをコピー」を選択します。
  5. IDE の編集ウィンドウで自分のクライアントクラスのコードに戻ります。
  6. setSecurityManager() 呼び出しの記述されている行のすぐ下にカーソルを置きます。クリップボードからコードをペーストします。ペーストした後、main() メソッドは次の例のようになっているはずです。
    1. public static void main (String[] args) {
         System.setSecurityManager (new RMISecurityManager());
         try {
            Hello obj = (Hello) Naming.lookup ("//localhost:1099/Remote");
         }
         catch (Exception ex) {
            ex.printStackTrace();
         }
      }
サーバーメソッド呼び出しを追加する
  1. lookup() 呼び出しによって返されるオブジェクトは、RMI サーバーのプロキシです。メソッドはプロキシ上で呼び出すことができます。
  2. 次のようなコードを使用します。
    1. obj.sayHello();
  3. 完成した main メソッドは次のようなものになります。
    1. public static void main (String[] args) {
         System.setSecurityManager (new RMISecurityManager());
         try{
            Hello obj = (Hello) Naming.lookup ("//localhost:1099/Remote");
            obj.sayHello();
         }
         catch (Exception ex)
         {
            ex.printStackTrace();
         }

クライアントをコンパイルおよび実行する

  1. クライアントを正しく実行するには、あらかじめ RMI サーバーが実行されている必要があります。
  2. エクスプローラウィンドウの「ファイルシステム」タブで、クライアントクラスをマウスの右ボタンでクリックし、そのプロパティシートを開きます。ここで、「実行方法」プロパティが「RMI クライアント実行」に設定されていることを確認します。
  3. クライアントを含むパッケージのノードをマウスの右ボタンでクリックし、コンテキストメニューから「コンパイル」を選択します。
  4. クライアントクラスのノードを再度マウスの右ボタンでクリックし、コンテキストメニューから「実行」を選択します。
詳細については、次のトピックを参照してください。
著作権と商標について