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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。