java - RMI中stub在哪里实例化

标签 java rmi

我不确定远程对象的 stub 实例是在哪里创建的。是通过调用Naming.bind在rmiregistry中注册时创建的吗?这是有道理的,因为注册表也是通过 RMI 调用的。

但是 stub 不能也通过调用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 时,我需要传递 stub 或远程对象吗?

最佳答案

stub 是

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

When using Naming.bind() do I need to pass a stub or a remote object?

要么。这并不重要,因为 (2)。

关于java - RMI中stub在哪里实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39166039/

相关文章:

java - 贾克斯布 : Append field of Request XML without modfying JAXB java class

java - 我如何使用java Spark转置csv数据

java - NoClassDefFound错误: com/pi4j/io/I2CFactory$UnsupportedBusNumberException

java - 从 ListView Adapter 中的循环构造 ID 数组 android

java - java中的RMI聊天程序 - 如何从客户端向客户端发送消息(不通过服务器)?

java - 在 RMI 服务器中执行 start rmiregistry 是个好主意吗?

java - 如何让多个线程使用同一个socket读写?

java - 如何修复 JMX 中的 java 序列化漏洞?

java RMI : how to detect whether the server has crashed?

java - EJB + JSP : Cannot create the Remote Object from the Home interface