java.rmi.registry

接口
所有超级接口:
Remote

public interface Registry
     
extends Remote

Registry 是简单远程对象注册表的一个远程接口,它提供存储和获取绑定了任意字符串名称的远程对象引用的方法。bindunbindrebind 方法用于改变注册表中的名称绑定,lookuplist 方法用于查询当前的名称绑定。

在其典型用法中,Registry 启用 RMI 客户机引导:它为客户机提供获得对远程对象的初始引用的简单方式。因此,导出的注册表的远程对象实现通常具有已知的地址,如具有已知的 ObjID 和 TCP 端口号(默认为 1099)。

LocateRegistry 类提供的一个可编程的 API,以便构造对远程地址上的 Registry 的引导引用(请参阅静态 getRegistry 方法),以及在当前 VM 所在的特定本地地址创建和导出 Registry(请参阅静态 createRegistry 方法)。

Registry 实现可以选择限制对其中的某些或全部方法的访问(例如,可以限制改变注册表绑定的方法来限制对本地主机发起的调用)。如果 Registry 方法选择拒绝对给定调用的访问,则其实现可能抛出 AccessException,抛出的这一异常(因为它扩展 RemoteException)可能会在远程客户端捕获它时包装在 ServerException 中。

Registry 中用于绑定的名称是纯字符串,不是经过分析的。在 Registry 中存储其远程引用的服务可能希望将包名称用作名称绑定中的前缀,以减少注册表中可能的名称冲突。

从以下版本开始:
JDK1.1
另请参见:
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 绑定。
 

字段详细信息

REGISTRY_PORT

static final int REGISTRY_PORT
已知的注册表端口。

另请参见:
常量字段值
方法详细信息

lookup

Remote lookup(String name)
              throws RemoteException,
                     NotBoundException,
                     AccessException
返回注册表中绑定到指定 name 的远程引用。

参数:
name - 要查找的远程引用的名称
返回:
对远程对象的引用
抛出:
NotBoundException - 如果当前未绑定 name
RemoteException - 如果与注册表的远程通信失败;如果异常是包含 AccessExceptionServerException,则注册表拒绝调用方对执行此操作的访问。
AccessException - 如果此注册表是本地的,并且它拒绝调用方对执行此操作的访问
NullPointerException - 如果 namenull

bind

void bind(String name,
          Remote obj)
          throws RemoteException,
                 AlreadyBoundException,
                 AccessException
绑定对此注册表中指定 name 的远程引用。

参数:
name - 与该远程引用相关的名称
obj - 对远程对象(通常是一个 stub)的引用
抛出:
AlreadyBoundException - 如果已经绑定了 name
RemoteException - 如果与注册表的远程通信失败;如果异常是包含 AccessExceptionServerException,则注册表拒绝调用方对执行此操作的访问(例如,发起的操作来自非本地主机)
AccessException - 如果此注册表是本地的,并且它拒绝调用方对执行此操作的访问
NullPointerException - 如果 namenull,或者如果 objnull

unbind

void unbind(String name)
            throws RemoteException,
                   NotBoundException,
                   AccessException
移除此注册表中指定的 name 绑定。

参数:
name - 要移除的绑定名称
抛出:
NotBoundException - 如果当前未绑定 name
RemoteException - 如果与注册表的远程通信失败;如果异常是包含 AccessExceptionServerException,则注册表拒绝调用方对执行此操作的访问(例如,发起的操作来自非本地主机)
AccessException - 如果此注册表是本地的,并且它拒绝调用方对执行此操作的访问
NullPointerException - 如果 namenull

rebind

void rebind(String name,
            Remote obj)
            throws RemoteException,
                   AccessException
用提供的远程引用替换此注册表中指定的 name 绑定。如果存在指定 name 的现有绑定,则会丢弃此现有的绑定。

参数:
name - 与该远程引用相关的名称
obj - 对远程对象(通常是一个 stub)的引用
抛出:
RemoteException - 如果与注册表的远程通信失败;如果异常是包含 AccessExceptionServerException,则注册表拒绝调用方对执行此操作的访问(例如,发起的操作来自非本地主机)
AccessException - 如果此注册表是本地的,并且它拒绝调用方对执行此操作的访问
NullPointerException - 如果 namenull,或者如果 objnull

list

String[] list()
              throws RemoteException,
                     AccessException
返回在此注册表中绑定的名称的数组。该数组将包含一个此注册表中调用此方法时绑定的名称快照。

返回:
此注册表中绑定名称的数组
抛出:
RemoteException - 如果与注册表的远程通信失败;如果异常是包含 AccessExceptionServerException,则注册表拒绝调用方对执行此操作的访问。
AccessException - 如果此注册表是本地的,并且它拒绝调用方对执行此操作的访问