在RMI中实例化的存根在哪里

时间:2016-08-26 12:11:42

标签: java rmi

我不确定创建远程对象的存根实例的位置。是通过调用Naming.bind在rmiregistry中注册它时创建的吗?这也是有意义的,因为注册表也是通过RMI调用的。

但是也不能通过调用UnicastRemoteObject.exportObject来创建存根吗?

此特定代码段from oracle让我感到困惑:

Compute engine = new ComputeEngine();
Compute stub = (Compute) UnicastRemoteObject.exportObject(engine, 0);
String name = "Compute";
Registry registry = LocateRegistry.getRegistry();
registry.rebind(name, stub);

使用Naming.bind时,是否需要传递存根或远程对象?

1 个答案:

答案 0 :(得分:1)

存根

  1. 在导出远程对象时创建
  2. 当您将远程对象作为远程方法参数或结果传递时,
  3. 替换远程对象,例如绑定或查阅注册表时。
  4.   

    使用Naming.bind()时,我是否需要传递存根或远程对象?

    要么。没关系,因为(2)。