Module java.rmi

Interface 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 Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    注册表的已知端口。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    bind(String name, Remote obj)
    将远程引用绑定到此注册表中指定的name
    String[]
    list()
    返回此注册表中绑定的名称数组。
    lookup(String name)
    返回绑定到此注册表中指定name的远程引用。
    void
    rebind(String name, Remote obj)
    用提供的远程引用替换此注册表中指定name的绑定。
    void
    unbind(String name)
    删除此注册表中指定name的绑定。
  • Field Details

    • REGISTRY_PORT

      static final int REGISTRY_PORT
      注册表的已知端口。
      参见:
  • Method Details

    • lookup

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

      将远程引用绑定到此注册表中指定的name
      参数:
      name - 要与远程引用关联的名称
      obj - 一个远程对象的引用(通常是一个存根)
      抛出:
      AlreadyBoundException - 如果name已经绑定
      RemoteException - 如果与注册表的远程通信失败;如果异常是包含AccessExceptionServerException,则注册表拒绝调用者执行此操作(例如来自非本地主机)
      AccessException - 如果此注册表是本地的并且拒绝调用者执行此操作
      NullPointerException - 如果namenull,或者objnull
    • unbind

      删除此注册表中指定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 - 如果此注册表是本地的并且拒绝调用者执行此操作