模块  java.rmi
软件包  java.rmi.registry

Interface Registry

  • All Superinterfaces:
    Remote

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

    在其典型用法中, Registry启用RMI客户端引导:它为客户端提供了一种获取对远程对象的初始引用的简单方法。 因此,注册表的远程对象实现通常使用众所周知的地址导出,例如使用众所周知的ObjID和TCP端口号(默认为1099 )。

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

    Registry实现可以选择限制对其部分或全部方法的访问(例如,改变注册表绑定的方法可能仅限于源自本地主机的调用)。 如果Registry方法选择拒绝给定调用的访问,则其实现可能会抛出AccessException ,当远程客户端捕获时,它将包含在ServerException (因为它扩展为RemoteException )。

    Registry中用于绑定的名称是纯字符串,未解析。 将其远程引用存储在Registry中的Registry可能希望使用包名作为名称绑定中的前缀,以减少注册表中名称冲突的可能性。

    从以下版本开始:
    1.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
        众所周知的注册表端口。
        另请参见:
        常数字段值
    • 方法详细信息

      • bind

        void bind​(String name,
                  Remote obj)
           throws RemoteException,
                  AlreadyBoundException,
                  AccessException
        将远程引用绑定到此注册表中的指定 name
        参数
        name - 与远程引用关联的名称
        obj - 对远程对象(通常是存根)的引用
        异常
        AlreadyBoundException - 如果已经绑定 name
        RemoteException - 如果与注册表的远程通信失败; 如果异常是包含ServerExceptionAccessException ,则注册表拒绝调用者访问以执行此操作(例如,如果源自非本地主机)
        AccessException - 如果此注册表是本地注册表,则拒绝调用者访问以执行此操作
        NullPointerException - 如果 namenull ,或者如果 objnull
      • unbind

        void unbind​(String name)
             throws RemoteException,
                    NotBoundException,
                    AccessException
        删除此注册表中指定的 name的绑定。
        参数
        name - 要删除的绑定的名称
        异常
        NotBoundException - 如果 name目前尚未受约束
        RemoteException - 如果与注册表的远程通信失败; 如果异常是包含ServerExceptionAccessException ,则注册表拒绝调用者访问以执行此操作(例如,如果源自非本地主机)
        AccessException - 如果此注册表是本地注册表,则拒绝调用者访问权限以执行此操作
        NullPointerException - 如果 namenull
      • rebind

        void rebind​(String name,
                    Remote obj)
             throws RemoteException,
                    AccessException
        使用提供的远程引用替换此注册表中指定的name的绑定。 如果指定的name存在现有绑定,则将其丢弃。
        参数
        name - 与远程引用关联的名称
        obj - 对远程对象(通常是存根)的引用
        异常
        RemoteException - 如果与注册表的远程通信失败; 如果异常是包含ServerExceptionAccessException ,则注册表拒绝调用者访问以执行此操作(例如,如果源自非本地主机)
        AccessException - 如果此注册表是本地的,并且它拒绝调用者访问以执行此操作
        NullPointerException - 如果 namenull ,或者如果 objnull
      • list

        String[] list()
               throws RemoteException,
                      AccessException
        返回此注册表中绑定的名称数组。 该数组将包含在给定调用此方法时绑定在此注册表中的名称的快照。
        结果
        此注册表中绑定的名称数组
        异常
        RemoteException - 如果与注册表的远程通信失败; 如果异常是包含ServerExceptionAccessException ,则注册表拒绝调用者访问以执行此操作
        AccessException - 如果此注册表是本地注册表,则拒绝调用者访问权限以执行此操作