public interface Registry extends Remote
Registry是一个简单的远程对象注册表的远程接口,提供了用于存储和检索与任意字符串名称绑定的远程对象引用的方法。
该bind , unbind和rebind方法用于改变注册表中的名称绑定,以及lookup种list方法用于查询当前的名称绑定。
在其典型用法中, Registry启用RMI客户端引导:它为客户端获取对远程对象的初始引用提供了一种简单的方法。 因此,注册表的远程对象实现通常以公知的地址导出,例如使用众所周知的ObjID和TCP端口号(默认为1099 )。
所述LocateRegistry类提供了一种构建的自举参照的编程API Registry在远程地址(见静态getRegistry方法)和用于创建和导出Registry上特定的本地地址中的当前VM(见静态createRegistry方法)。
Registry实现可以选择限制对其一些或全部方法的访问(例如,将注册表的绑定变异的方法可能被限制为来自本地主机的呼叫)。 如果Registry方法选择拒绝给定调用的访问,则其实现可能会抛出AccessException (由于扩展RemoteException )将被远程客户端捕获时封装在ServerException中 。
在Registry中用于绑定的名称是纯字符串,不会解析。 在Registry中存储其远程引用的Registry可能希望在名称绑定中使用包名作为前缀,以减少注册表中名称冲突的可能性。
LocateRegistry
| Modifier and Type | Field and Description |
|---|---|
static int |
REGISTRY_PORT
众所周知的注册端口。
|
| Modifier and Type | Method and Description |
|---|---|
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 - 如果与注册表的远程通信失败;
如果异常是包含ServerException的AccessException ,则注册表会拒绝主叫方访问以执行此操作
AccessException - 如果此注册表是本地注册表,并且拒绝来电者访问以执行此操作
NullPointerException - 如果
name是
null
void bind(String name, Remote obj) throws RemoteException, AlreadyBoundException, AccessException
name的远程引用。
name - 与远程引用关联的名称
obj - 对远程对象的引用(通常是存根)
AlreadyBoundException - 如果
name已经绑定
RemoteException - 如果与注册表的远程通信失败;
如果异常是包含ServerException的AccessException ,则注册表拒绝主叫方访问来执行此操作(例如,源自非本地主机)
AccessException - 如果此注册表是本地注册表,并且拒绝主叫方访问以执行此操作
NullPointerException - 如果
name是
null ,或者如果
obj是
null
void unbind(String name) throws RemoteException, NotBoundException, AccessException
name此注册表。
name - 要删除的绑定的名称
NotBoundException - 如果
name当前未绑定
RemoteException - 如果与注册表的远程通信失败;
如果异常是包含ServerException的AccessException ,则注册表拒绝主叫方访问来执行此操作(例如,源自非本地主机)
AccessException - 如果此注册表是本地注册表,并且拒绝来电者访问以执行此操作
NullPointerException - 如果
name是
null
void rebind(String name, Remote obj) throws RemoteException, AccessException
name在此注册表与所提供的远程引用。
如果存在现有的规定结合name ,将其丢弃。
name - 与远程引用关联的名称
obj - 对远程对象的引用(通常是存根)
RemoteException - 如果与注册表的远程通信失败;
如果异常是包含ServerException的AccessException ,则注册表拒绝主叫方访问来执行此操作(例如,源自非本地主机)
AccessException - 如果此注册表是本地注册表,并且拒绝来电者访问以执行此操作
NullPointerException - 如果
name是
null ,或者如果
obj是
null
String[] list() throws RemoteException, AccessException
RemoteException - 如果与注册表的远程通信失败;
如果异常是包含ServerException的AccessException ,则注册表拒绝主叫方访问以执行此操作
AccessException - 如果此注册表是本地注册表,并拒绝主叫方访问执行此操作
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.