Java RMI:rmic编译器生成的存根骨架的作用是什么?

9

我目前正在学习Java RMI(远程方法调用),并按照Oracle网站上提供的教程进行学习。然而,我有一个特定的问题:

rmic生成的存根-骨架有什么用?我真的需要它吗?


请看这里:http://docs.oracle.com/javase/1.5.0/docs/guide/rmi/spec/rmi-arch2.html - BeNdErR
骨架自1998年以来就没有被使用过。 - user207421
1
@EJP-SIR,我在stackoverflow上看到了您关于标签rmi的几十个答案。与其他官方教程相比,它们是最好的。您是否有任何与rmi相关的个人博客?拜托了!谢谢... - Am_I_Helpful
@shekarsuman 谢谢。我不写博客,只写书籍;-) java.rmi: Java远程方法调用指南,Pitt&McNiff,Addison Wesley 2001年。 - user207421
1个回答

13

Stub/骨架将通信细节隐藏在开发人员的背后。Stub是实现远程接口的类。它作为远程对象的客户端占位符。Stub通过与服务器端的skeleton进行通信。

Skeleton是服务器端的stub对应物。两者通过网络通信。Skeleton实际上知道真正的远程对象,将stub的请求委托给它,并将响应返回给stub。

您需要两者,因为它们是RMI的基本构建块。


3
你不需要两个。自1998年以来,你就不需要骨架,如果你遵循UnicastRemoteObject的Javadoc前言所说的,也不需要存根。 - user207421
1
@EJP 我认为在幕后有存根对象,即使您使用 UnicastRemoteObject。毕竟,某些对象将在客户端机器上创建以表示远程对象;该对象是代理,我认为可以称之为存根。它肯定填补了旧存根类的实例所扮演的角色。 - Theodore Norvell
1
@TheodoreNorvell,这里有一个动态生成的存根对象。你不需要再生成一个了。 - user207421

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接