-
- All Superinterfaces:
-
Remote
public interface Registryextends Remote
Registry
是一个简单远程对象注册表的远程接口,它提供了存储和检索以任意字符串名称绑定的远程对象引用的方法。 该bind
,unbind
和rebind
方法用于改变注册表中的名称绑定,并lookup
种list
方法用于查询当前的名称绑定。在其典型用法中,
Registry
启用RMI客户端引导:它为客户端提供了一种获取对远程对象的初始引用的简单方法。 因此,注册表的远程对象实现通常使用众所周知的地址导出,例如使用众所周知的ObjID
和TCP端口号(默认为1099
)。LocateRegistry
类提供了一个编程API,用于在远程地址构建对Registry
的引导引用(请参阅静态getRegistry
方法)以及在特定本地地址的当前VM中创建和导出Registry
(请参阅静态createRegistry
方法)。Registry
实现可以选择限制对其部分或全部方法的访问(例如,改变注册表绑定的方法可能仅限于源自本地主机的调用)。 如果Registry
方法选择拒绝给定调用的访问,则其实现可能会抛出AccessException
,当远程客户端捕获时,它将包含在ServerException
中 (因为它扩展为RemoteException
)。Registry
中用于绑定的名称是纯字符串,未解析。 将其远程引用存储在Registry
中的Registry
可能希望使用包名作为名称绑定中的前缀,以减少注册表中名称冲突的可能性。- 从以下版本开始:
- 1.1
- 另请参见:
-
LocateRegistry
-
-
字段汇总
字段 变量和类型 字段 描述 static int
REGISTRY_PORT
众所周知的注册表端口。
-
-
-
字段详细信息
-
REGISTRY_PORT
static final int REGISTRY_PORT
众所周知的注册表端口。- 另请参见:
- 常数字段值
-
-
方法详细信息
-
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
- 如果此注册表是本地注册表,则拒绝调用者访问权限以执行此操作
-
-