使用UnicastRemoteObject.exportObject的返回值和导出的对象之间有区别吗?

时间:2015-12-22 13:35:49

标签: java rmi

导出对象时,我发现这两个

LocateRegistry.createRegistry(1099);
ObjectToExport obj = new ObjectToExport();
UnicastRemoteObject.exportObject(obj, 1099);
Naming.rebind("ObjectName", obj);

和这个

LocateRegistry.createRegistry(1099);
ObjectToExport obj = new ObjectToExport();
Naming.rebind("ObjectName", UnicastRemoteObject.exportObject(obj, 1099));

的工作。在第一个我不使用exportObject的返回值,在第二个我做。这两种导出对象的方式有区别吗? API仅表示返回值为remote object stub

1 个答案:

答案 0 :(得分:0)

导出步骤没有区别,但你也绑定了对象,这一步有所不同。在第一步中,你传递了实际的对象;在第二个,存根。 然而 RMI的语义是导出的远程对象作为自己的存根传递给远程方法,因此注册表中的实际效果是相同的。