Module  java.rmi
软件包  java.rmi.registry

Interface Registry

  • All Superinterfaces:
    Remote


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

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

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

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

    Registry Registry存储其远程引用的Registry可能希望在名称绑定中使用包名称作为前缀,以减少注册表中名称冲突的可能性。

    从以下版本开始:
    1.1
    另请参见:
    LocateRegistry
    • Field Summary

      Fields  
      Modifier and Type Field 描述
      static int REGISTRY_PORT
      众所周知的注册端口。
    • 方法摘要

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      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
        众所周知的注册端口。
        另请参见:
        Constant Field Values
    • 方法详细信息

      • bind

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

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

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