-
- すべてのスーパー・インタフェース:
Remote
public interface Registry extends Remote
Registryは、単純なリモート・オブジェクト・レジストリに対するリモート・インタフェースで、任意の文字列名にバインドされたリモート・オブジェクト参照を格納および取得するためのメソッドを提供します。bind、unbind、および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 intREGISTRY_PORTレジストリによく使われるポートです。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 voidbind(String name, Remote obj)このレジストリ内の特定のnameにリモート参照をバインドします。String[]list()このレジストリ内にバインドされた名前の配列を返します。Remotelookup(String name)このレジストリ内の特定のnameにバインドされているリモート参照を返します。voidrebind(String name, Remote obj)このレジストリ内の特定のnameへのバインディングを特定のリモート参照に置き換えます。voidunbind(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-nameがnullである場合
-
bind
void bind(String name, Remote obj) throws RemoteException, AlreadyBoundException, AccessException
このレジストリ内の特定のnameにリモート参照をバインドします。- パラメータ:
name- リモート参照に関連付ける名前obj- リモート・オブジェクトへの参照(通常はスタブ)- 例外:
AlreadyBoundException-nameがすでにバインドされている場合RemoteException- レジストリとのリモート通信に失敗した場合。AccessExceptionを含むServerException例外の場合、レジストリはこの操作を実行する呼出し側アクセスを拒否する(たとえば、ローカルではないホストから操作している場合)AccessException- ローカル・レジストリがこの操作を実行する呼出し側アクセスを拒否した場合NullPointerException-nameがnull、またはobjがnullの場合
-
unbind
void unbind(String name) throws RemoteException, NotBoundException, AccessException
このレジストリの特定のnameへのバインディングを削除します。- パラメータ:
name- 削除するバインディングの名前- 例外:
NotBoundException-nameがバインドされていない場合RemoteException- レジストリとのリモート通信に失敗した場合。AccessExceptionを含むServerException例外の場合、レジストリはこの操作を実行する呼出し側アクセスを拒否する(たとえば、ローカルではないホストから操作している場合)AccessException- ローカル・レジストリがこの操作を実行する呼出し側アクセスを拒否した場合NullPointerException-nameがnullである場合
-
rebind
void rebind(String name, Remote obj) throws RemoteException, AccessException
このレジストリ内の特定のnameへのバインディングを特定のリモート参照に置き換えます。 指定されたnameにすでにバインディングが設定されている場合は、破棄されます。- パラメータ:
name- リモート参照に関連付ける名前obj- リモート・オブジェクトへの参照(通常はスタブ)- 例外:
RemoteException- レジストリとのリモート通信に失敗した場合。AccessExceptionを含むServerException例外の場合、レジストリはこの操作を実行する呼出し側アクセスを拒否する(たとえば、ローカルではないホストから操作している場合)AccessException- ローカル・レジストリがこの操作を実行する呼出し側アクセスを拒否した場合NullPointerException-nameがnull、またはobjがnullの場合
-
list
String[] list() throws RemoteException, AccessException
このレジストリ内にバインドされた名前の配列を返します。 配列には、このメソッドを呼び出した時点でレジストリ内にバインドされている名前のスナップショットが含まれます。- 戻り値:
- このレジストリ内にバインドされた名前の配列
- 例外:
RemoteException- レジストリとのリモート通信に失敗した場合。AccessExceptionを含むServerException例外の場合、レジストリはこの操作を実行する呼出し側アクセスを拒否するAccessException- ローカル・レジストリがこの操作を実行する呼出し側アクセスを拒否した場合
-
-