模块 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 中的服务可能希望使用包名称作为名称绑定中的前缀,以减少注册表中名称冲突的可能性。

自从:
1.1
参见:
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    static final int
    众所周知的注册表端口。
  • 方法总结

    修饰符和类型
    方法
    描述
    void
    bind(String name, Remote obj)
    将远程引用绑定到此注册表中指定的 name
    list()
    返回在此注册表中绑定的名称数组。
    lookup(String name)
    返回绑定到此注册表中指定 name 的远程引用。
    void
    rebind(String name, Remote obj)
    将此注册表中指定 name 的绑定替换为提供的远程引用。
    void
    unbind(String name)
    删除此注册表中指定 name 的绑定。
  • 字段详细信息

    • REGISTRY_PORT

      static final int REGISTRY_PORT
      众所周知的注册表端口。
      参见:
  • 方法详情

    • lookup

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

      void bind(String  name, Remote  obj) throws RemoteException , AlreadyBoundException , AccessException
      将远程引用绑定到此注册表中指定的 name
      参数:
      name - 与远程引用关联的名称
      obj - 对远程对象的引用(通常是存根)
      抛出:
      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 - 对远程对象的引用(通常是存根)
      抛出:
      RemoteException - 如果与注册表的远程通信失败;如果异常是包含 AccessExceptionServerException,则注册表拒绝调用者访问以执行此操作(例如,如果来自非本地主机)
      AccessException - 如果此注册表是本地的并且它拒绝调用者访问以执行此操作
      NullPointerException - 如果 namenull,或者如果 objnull
    • list

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