- 所有父级接口:
Remote
Registry
是一个简单的远程对象注册表的远程接口,它提供了存储和检索与任意字符串名称绑定的远程对象引用的方法。 bind
、unbind
和 rebind
方法用于更改注册表中的名称绑定,lookup
和 list
方法用于查询当前名称绑定。
在其典型用法中,Registry
启用 RMI 客户端引导:它为客户端提供了一种简单的方法来获取对远程对象的初始引用。因此,注册表的远程对象实现通常使用众所周知的地址导出,例如使用众所周知的 ObjID
和 TCP 端口号(默认为 1099
)。
LocateRegistry
类提供了一个编程 API,用于在远程地址处构建对 Registry
的引导引用(参见静态 getRegistry
方法),以及用于在特定本地地址的当前 VM 中创建和导出 Registry
(参见静态 createRegistry
方法)。
Registry
实现可以选择限制对其部分或全部方法的访问(例如,改变注册表绑定的方法可能仅限于来自本地主机的调用)。如果 Registry
方法选择拒绝对给定调用的访问,它的实现可能会抛出 AccessException
,当被远程客户端捕获时,它(因为它扩展了 RemoteException
)将被包装在 ServerException
中。
Registry
中用于绑定的名称是纯字符串,未经过解析。将其远程引用存储在 Registry
中的服务可能希望使用包名称作为名称绑定中的前缀,以减少注册表中名称冲突的可能性。
- 自从:
- 1.1
- 参见:
-
字段摘要
字段 -
方法总结
-
字段详细信息
-
REGISTRY_PORT
static final int REGISTRY_PORT众所周知的注册表端口。- 参见:
-
-
方法详情
-
lookup
返回绑定到此注册表中指定name
的远程引用。- 参数:
name
- 要查找的远程引用的名称- 返回:
- 对远程对象的引用
- 抛出:
NotBoundException
- 如果name
当前未绑定RemoteException
- 如果与注册表的远程通信失败;如果异常是包含AccessException
的ServerException
,则注册表拒绝调用者访问以执行此操作AccessException
- 如果此注册表是本地的并且它拒绝调用者访问以执行此操作NullPointerException
- 如果name
是null
-
bind
将远程引用绑定到此注册表中指定的name
。- 参数:
name
- 与远程引用关联的名称obj
- 对远程对象的引用(通常是存根)- 抛出:
AlreadyBoundException
- 如果name
已经绑定RemoteException
- 如果与注册表的远程通信失败;如果异常是包含AccessException
的ServerException
,则注册表拒绝调用者访问以执行此操作(例如,如果来自非本地主机)AccessException
- 如果此注册表是本地的并且它拒绝调用者访问以执行此操作NullPointerException
- 如果name
是null
,或者如果obj
是null
-
unbind
删除此注册表中指定name
的绑定。- 参数:
name
- 要删除的绑定的名称- 抛出:
NotBoundException
- 如果name
当前未绑定RemoteException
- 如果与注册表的远程通信失败;如果异常是包含AccessException
的ServerException
,则注册表拒绝调用者访问以执行此操作(例如,如果来自非本地主机)AccessException
- 如果此注册表是本地的并且它拒绝调用者访问以执行此操作NullPointerException
- 如果name
是null
-
rebind
将此注册表中指定name
的绑定替换为提供的远程引用。如果指定的name
存在现有绑定,则将其丢弃。- 参数:
name
- 与远程引用关联的名称obj
- 对远程对象的引用(通常是存根)- 抛出:
RemoteException
- 如果与注册表的远程通信失败;如果异常是包含AccessException
的ServerException
,则注册表拒绝调用者访问以执行此操作(例如,如果来自非本地主机)AccessException
- 如果此注册表是本地的并且它拒绝调用者访问以执行此操作NullPointerException
- 如果name
是null
,或者如果obj
是null
-
list
返回在此注册表中绑定的名称数组。该数组将包含在给定调用此方法时此注册表中绑定的名称的快照。- 返回:
- 在此注册表中绑定的名称数组
- 抛出:
RemoteException
- 如果与注册表的远程通信失败;如果异常是包含AccessException
的ServerException
,则注册表拒绝调用者访问以执行此操作AccessException
- 如果此注册表是本地的并且它拒绝调用者访问以执行此操作
-