我在IP:192.168.133.2 虛擬機(運行Windows XP)上運行RMI Regitry並試圖綁定RMI服務器(運行在不同的vm XP IP:192.168.133.3) 使用此代碼:rmi註冊表綁定問題
Naming.rebind("//192.168.133.2/rmi.2", new RMI());
其中
public class RMI extends UnicastRemoteObject
,但我得到這個異常:
java.rmi.AccessException: Registry.Registry.rebind disallowed; origin /192.168.133.3 is non-local host
我認爲RMI註冊表不接受任何rmi服務器在RMI註冊表運行機器上沒有運行相同的 。
但如何使此註冊表接受我的rmi服務器?
p.s:我使用JBuilder X作爲IDE。
我試圖實現,這將運行一些RMI服務器上做對他們的一些工作,並將結果返回到起點站移動代理等等RMI服務器實現了承載此代理做其工作環境並將其發送到它會通過註冊表
我試圖實現一個移動代理,它將在一些rmi服務器上運行,對它們做一些工作並將結果返回到起始站 ,以便RMI服務器實現承載此代理的環境,以執行其工作併發送它到它將通過註冊表找到的下一個站.. 所以你說我不能創建一個多主機服務器(每臺服務器運行在不同的機器上,但在同一個網絡上)。 對不對? –
我在說你的'多主機'集合中的每個服務器都必須單獨運行一個本地的rmiregistry,你的服務的本地副本必須綁定到該rmiregistry。如果您希望您的客戶端能夠輪換到不同的RMI服務,那麼這是RMI提供的層數;您必須想出一些方法來在RMI之外執行此操作(JNDI命名在這裏可能會有所幫助:-) –
但是如果代理在A機上運行並且想要移動到機器B 它如何找到B if沒有包含所有服務的統一註冊表? –