モジュール java.rmi
パッケージ java.rmi.registry

インタフェースRegistry

  • すべてのスーパー・インタフェース:
    Remote


    public interface Registry
    extends Remote
    Registryは、単純なリモート・オブジェクト・レジストリに対するリモート・インタフェースで、任意の文字列名にバインドされたリモート・オブジェクト参照を格納および取得するためのメソッドを提供します。 bindunbind、およびrebindメソッドはレジストリ内のネーム・バインディングを変更するときに使用し、lookupおよびlistメソッドは現在のネーム・バインディングを照会するときに使用します。

    Registryは通常、RMIクライアントのブートストラップを有効にします。クライアントは、リモート・オブジェクトへの初期参照を起動時に取得します。 このため、レジストリのリモート・オブジェクト実装は通常、既知のアドレス(既知のObjIDなど)およびTCPポート番号(デフォルトは1099)を使ってエクスポートされます。

    LocateRegistryクラスでは、リモート・アドレスにあるRegistryへのブートストラップ参照を構築するためのプログラムAPI (staticメソッドgetRegistryを参照)と、現在のVMにRegistryを作成して特定のローカル・アドレスにエクスポートするプログラムAPI (staticメソッドcreateRegistryを参照)を利用できます。

    Registryの実装では、その一部またはすべてのメソッドへのアクセスを制限できます。たとえば、レジストリのバインディングを変更するメソッドをローカル・ホストから発生する呼出しに制限できます。 Registryメソッドが特定の呼出しのアクセスを拒否した場合、その実装によりAccessExceptionがスローされることがあります。この例外はRemoteExceptionの拡張であるため、リモート・クライアントにキャッチされるとServerExceptionにラップされます。

    Registryでバインディングに使用する名前は、純粋な文字列で、解析されません。 Registryにサービスへのリモート参照を格納するときは、レジストリ内での名前の衝突を減らすために、ネーム・バインディングの接頭辞としてパッケージ名を使用することをお薦めします。

    導入されたバージョン:
    1.1
    関連項目:
    LocateRegistry
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static int REGISTRY_PORT
      レジストリによく使われるポートです。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 
      修飾子と型 メソッド 説明
      void bind​(String name, Remote obj)
      このレジストリ内の特定のnameにリモート参照をバインドします。
      String[] list​()
      このレジストリ内にバインドされた名前の配列を返します。
      Remote lookup​(String name)
      このレジストリ内の特定のnameにバインドされているリモート参照を返します。
      void rebind​(String name, Remote obj)
      このレジストリ内の特定のnameへのバインディングを特定のリモート参照に置き換えます。
      void unbind​(String name)
      このレジストリの特定のnameへのバインディングを削除します。
    • フィールドの詳細

      • REGISTRY_PORT

        static final int REGISTRY_PORT
        レジストリによく使われるポートです。
        関連項目:
        定数フィールド値
    • メソッドの詳細

      • lookup

        Remote lookup​(String name)
               throws RemoteException,
                      NotBoundException,
                      AccessException
        このレジストリ内の特定のnameにバインドされているリモート参照を返します。
        パラメータ:
        name - 検索するリモート参照の名前
        戻り値:
        リモート・オブジェクトへの参照
        例外:
        NotBoundException - nameがバインドされていない場合
        RemoteException - レジストリとのリモート通信に失敗した場合。AccessExceptionを含むServerException例外の場合、レジストリはこの操作を実行する呼出し側アクセスを拒否する
        AccessException - ローカル・レジストリがこの操作を実行する呼出し側アクセスを拒否した場合
        NullPointerException - namenullである場合
      • bind

        void bind​(String name,
                  Remote obj)
           throws RemoteException,
                  AlreadyBoundException,
                  AccessException
        このレジストリ内の特定のnameにリモート参照をバインドします。
        パラメータ:
        name - リモート参照に関連付ける名前
        obj - リモート・オブジェクトへの参照(通常はスタブ)
        例外:
        AlreadyBoundException - nameがすでにバインドされている場合
        RemoteException - レジストリとのリモート通信に失敗した場合。AccessExceptionを含むServerException例外の場合、レジストリはこの操作を実行する呼出し側アクセスを拒否する(たとえば、ローカルではないホストから操作している場合)
        AccessException - ローカル・レジストリがこの操作を実行する呼出し側アクセスを拒否した場合
        NullPointerException - namenull、またはobjnullの場合
      • unbind

        void unbind​(String name)
             throws RemoteException,
                    NotBoundException,
                    AccessException
        このレジストリの特定のnameへのバインディングを削除します。
        パラメータ:
        name - 削除するバインディングの名前
        例外:
        NotBoundException - nameがバインドされていない場合
        RemoteException - レジストリとのリモート通信に失敗した場合。AccessExceptionを含むServerException例外の場合、レジストリはこの操作を実行する呼出し側アクセスを拒否する(たとえば、ローカルではないホストから操作している場合)
        AccessException - ローカル・レジストリがこの操作を実行する呼出し側アクセスを拒否した場合
        NullPointerException - namenullである場合
      • rebind

        void rebind​(String name,
                    Remote obj)
             throws RemoteException,
                    AccessException
        このレジストリ内の特定のnameへのバインディングを特定のリモート参照に置き換えます。 指定されたnameにすでにバインディングが設定されている場合は、破棄されます。
        パラメータ:
        name - リモート参照に関連付ける名前
        obj - リモート・オブジェクトへの参照(通常はスタブ)
        例外:
        RemoteException - レジストリとのリモート通信に失敗した場合。AccessExceptionを含むServerException例外の場合、レジストリはこの操作を実行する呼出し側アクセスを拒否する(たとえば、ローカルではないホストから操作している場合)
        AccessException - ローカル・レジストリがこの操作を実行する呼出し側アクセスを拒否した場合
        NullPointerException - namenull、またはobjnullの場合
      • list

        String[] list​()
               throws RemoteException,
                      AccessException
        このレジストリ内にバインドされた名前の配列を返します。 配列には、このメソッドを呼び出した時点でレジストリ内にバインドされている名前のスナップショットが含まれます。
        戻り値:
        このレジストリ内にバインドされた名前の配列
        例外:
        RemoteException - レジストリとのリモート通信に失敗した場合。AccessExceptionを含むServerException例外の場合、レジストリはこの操作を実行する呼出し側アクセスを拒否する
        AccessException - ローカル・レジストリがこの操作を実行する呼出し側アクセスを拒否した場合