|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
public interface Registry
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 中存储其远程引用的服务可能希望将包名称用作名称绑定中的前缀,以减少注册表中可能的名称冲突。
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 - 对远程对象(通常是一个 stub)的引用
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 - 对远程对象(通常是一个 stub)的引用
RemoteException - 如果与注册表的远程通信失败;如果异常是包含 AccessException 的 ServerException,则注册表拒绝调用方对执行此操作的访问(例如,发起的操作来自非本地主机)
AccessException - 如果此注册表是本地的,并且它拒绝调用方对执行此操作的访问
NullPointerException - 如果 name 为 null,或者如果 obj 为 null
String[] list()
throws RemoteException,
AccessException
RemoteException - 如果与注册表的远程通信失败;如果异常是包含 AccessException 的 ServerException,则注册表拒绝调用方对执行此操作的访问。
AccessException - 如果此注册表是本地的,并且它拒绝调用方对执行此操作的访问
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。