-
- All Superinterfaces:
-
Remote
public interface Registry extends Remote
Registry
是一个简单的远程对象注册表的远程接口,提供用于存储和检索与任意字符串名称绑定的远程对象引用的方法。 该bind
,unbind
,并rebind
方法用于改变注册表中的名称绑定,以及lookup
种list
方法用于查询当前的名称绑定。在其典型用法中,
Registry
启用RMI客户端引导:它为客户端获取对远程对象的初始引用提供了一种简单的方法。 因此,注册表的远程对象实现通常使用公知的地址导出,例如使用众所周知的ObjID
和TCP端口号(默认为1099
)。LocateRegistry
类提供了一个编程API,用于构建对远程地址(参见静态getRegistry
方法)的Registry
的引导引用,Registry
在特定本地地址上的当前虚拟机中创建和导出Registry
(请参阅静态createRegistry
方法)。A
Registry
实现可以选择限制对其部分或全部方法的访问(例如,将注册表绑定变异的方法可能被限制为源自本地主机的呼叫)。 如果Registry
方法选择拒绝给定调用的访问,则其实现可能会抛出AccessException
(由于扩展RemoteException
)将被远程客户端捕获时包装在一个ServerException
中 。Registry
在Registry
存储其远程引用的Registry
可能希望在名称绑定中使用包名称作为前缀,以减少注册表中名称冲突的可能性。- 从以下版本开始:
- 1.1
- 另请参见:
-
LocateRegistry
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
REGISTRY_PORT
众所周知的注册端口。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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
众所周知的注册端口。- 另请参见:
- Constant Field Values
-
-
方法详细信息
-
lookup
Remote lookup(String name) throws RemoteException, NotBoundException, AccessException
返回绑定到此注册表中指定的name
的远程引用。- 参数
-
name
- 要查找的远程参考的名称 - 结果
- 对远程对象的引用
- 异常
-
NotBoundException
- 如果name
当前未绑定 -
RemoteException
- 如果与注册表的远程通信失败; 如果异常是ServerException
含有AccessException
,则注册表拒绝访问呼叫者来执行此操作 -
AccessException
- 如果此注册表是本地注册表,并且它拒绝主叫方访问以执行此操作 -
NullPointerException
- 如果name
是null
-
bind
void bind(String name, Remote obj) throws RemoteException, AlreadyBoundException, AccessException
绑定到此注册表中指定的name
的远程引用。- 参数
-
name
- 与远程引用关联的名称 -
obj
- 对远程对象的引用(通常是存根) - 异常
-
AlreadyBoundException
- 如果已经绑定了name
-
RemoteException
- 如果与注册表的远程通信失败; 如果异常是包含ServerException
的AccessException
,则注册表拒绝主叫方访问来执行此操作(例如,源自非本地主机) -
AccessException
- 如果此注册表是本地注册表,并且拒绝来电者访问以执行此操作 -
NullPointerException
- 如果name
是null
,或者如果obj
是null
-
unbind
void unbind(String name) throws RemoteException, NotBoundException, AccessException
删除此注册表中指定的name
的绑定。- 参数
-
name
- 要删除的绑定的名称 - 异常
-
NotBoundException
- 如果name
当前未绑定 -
RemoteException
- 如果与注册表的远程通信失败; 如果异常是包含ServerException
的AccessException
,则注册表拒绝主叫方访问来执行此操作(例如,来自非本地主机) -
AccessException
- 如果此注册表是本地注册表,并且拒绝来电者访问以执行此操作 -
NullPointerException
- 如果name
是null
-
rebind
void rebind(String name, Remote obj) throws RemoteException, AccessException
使用提供的远程引用替换此注册表中指定的name
的绑定。 如果对于指定的name
有现有绑定,则会被丢弃。- 参数
-
name
- 与远程引用关联的名称 -
obj
- 对远程对象的引用(通常是存根) - 异常
-
RemoteException
- 如果与注册表的远程通信失败; 如果异常是ServerException
含有AccessException
,则注册表拒绝访问呼叫者来执行此操作(如果源自非本地主机,例如) -
AccessException
- 如果此注册表是本地注册表,并且拒绝来电者访问以执行此操作 -
NullPointerException
- 如果name
是null
,或者如果obj
是null
-
list
String[] list() throws RemoteException, AccessException
返回在此注册表中绑定的名称的数组。 在该方法的给定调用时,数组将包含在此注册表中绑定的名称的快照。- 结果
- 在这个注册表中绑定的名称的数组
- 异常
-
RemoteException
- 如果与注册表的远程通信失败; 如果异常是ServerException
含有AccessException
,则注册表拒绝访问呼叫者来执行此操作 -
AccessException
- 如果此注册表是本地注册表,并且拒绝主叫方访问以执行此操作
-
-