2013-06-02 24 views
5

我目前正在學習Java RMI(遠程方法調用),並且我遵循Oracle在其網站上提供的教程。然而,我有一個特別的問題:Java RMI:由rmic編譯器生成的存根骨架的作用

rmic生成的stub-skeleton的用法是什麼?我真的需要它嗎?

+0

看看這裏http://docs.oracle.com/javase/1.5.0/docs/guide/rmi/spec/rmi-arch2.html – BeNdErR

+0

自1998年以來,骨架一直沒有使用過。 – EJP

+1

@ EJP- SIR,我已經看到了數十個與堆棧溢出標籤rmi有關的答案。與其他官方教程相比,它們是最好的選擇。你有任何與rmi有關的個人博客。請問我需要他們!謝謝... –

回答

8

存根/骨架隱藏通信細節遠離開發人員。存根是實現遠程接口的類。它充當遠程對象的客戶端佔位符。存根與服務器端骨架進行通信。 骨架是服務器端的存根。兩者都通過網絡進行通信。骨架實際上知道真正的遠程對象將存根的請求委託給它,並將響應返回給存根。 您需要兩者,因爲它們是RMI的基本組成部分。

+2

你不需要兩者都有。從1998年開始你就不需要骨架了,如果你按照序言Javadoc中的說法將其轉換爲UnicastRemoteObject,則不需要存根。 – EJP

+1

@EJP我認爲即使你使用'UnicastRemoteObject',幕後也存在存根對象。畢竟在客戶機上創建一些對象來表示遠程對象;該對象是一個代理,我認爲可以稱爲存根。它確實填補了舊存根類實例填充的角色。 –

+0

@TheodoreNorvell有一個*動態生成的存根對象。您不需要再生成*一個。 – EJP