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 にサービスへのリモート参照を格納するときは、レジストリ内での名前の衝突を減らすために、ネームバインディングの接頭辞としてパッケージ名を使用することをお勧めします。
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 へのバインディングを削除します。 |
static final int REGISTRY_PORT
Remote lookup(String name) throws RemoteException, NotBoundException, AccessException
name にバインドされているリモート参照を返します。name - 検索するリモート参照の名前NotBoundException - name がバインドされていない場合RemoteException - レジストリとのリモート通信に失敗した場合。AccessException を含む ServerException 例外の場合、レジストリはこの操作を実行する呼び出し側アクセスを拒否するAccessException - ローカルレジストリがこの操作を実行する呼び出し側アクセスを拒否した場合NullPointerException - name が null である場合void bind(String name, Remote obj) throws RemoteException, AlreadyBoundException, AccessException
name にリモート参照をバインドします。name - リモート参照に関連付ける名前obj - リモートオブジェクトへの参照 (通常はスタブ)AlreadyBoundException - name がすでにバインドされている場合RemoteException - レジストリとのリモート通信に失敗した場合。AccessException を含む ServerException 例外の場合、レジストリはこの操作を実行する呼び出し側アクセスを拒否する (たとえば、ローカルではないホストから操作している場合)AccessException - ローカルレジストリがこの操作を実行する呼び出し側アクセスを拒否した場合NullPointerException - name が null、または obj が null の場合void unbind(String name) throws RemoteException, NotBoundException, AccessException
name へのバインディングを削除します。name - 削除するバインディングの名前NotBoundException - name がバインドされていない場合RemoteException - レジストリとのリモート通信に失敗した場合。AccessException を含む ServerException 例外の場合、レジストリはこの操作を実行する呼び出し側アクセスを拒否する (たとえば、ローカルではないホストから操作している場合)AccessException - ローカルレジストリがこの操作を実行する呼び出し側アクセスを拒否した場合NullPointerException - name が null である場合void rebind(String name, Remote obj) throws RemoteException, AccessException
name へのバインディングを特定のリモート参照に置き換えます。指定された name にすでにバインディングが設定されている場合は、破棄されます。name - リモート参照に関連付ける名前obj - リモートオブジェクトへの参照 (通常はスタブ)RemoteException - レジストリとのリモート通信に失敗した場合。AccessException を含む ServerException 例外の場合、レジストリはこの操作を実行する呼び出し側アクセスを拒否する (たとえば、ローカルではないホストから操作している場合)AccessException - ローカルレジストリがこの操作を実行する呼び出し側アクセスを拒否した場合NullPointerException - name が null、または obj が null の場合String[] list() throws RemoteException, AccessException
RemoteException - レジストリとのリモート通信に失敗した場合。AccessException を含む ServerException 例外の場合、レジストリはこの操作を実行する呼び出し側アクセスを拒否するAccessException - ローカルレジストリがこの操作を実行する呼び出し側アクセスを拒否した場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.