尊敬的堆棧溢出用戶。rmi註冊問題
我已經閱讀了很多RMI註冊表問題,並試圖解決我的問題,但沒有成功。所以這是我的情況,我希望有人能至少幫助我一點。
我正在爲一個學校項目建立一個多玩家pacman。它需要使用java RMI,所以我創建了3個不錯的jar文件。該服務器包含(僅)一個主類,它將該東西發佈到遠程服務器並加載一些東西,如地圖等。包含一些揮杆垃圾的客戶端顯示一些漂亮的表單。第三個包含所有pacman代碼的庫。
現在,當我在本地啓動服務器時,它會啓動一個rmiregistry並將遊戲綁定到它(在課程設置後)。然後我將我的客戶端連接到它並可以很好地播放。所有的作品,我可以開始一個視圖客戶端連接到我的本地rmiregistery並很好地獲得遊戲對象。 之後,我啓動獨立於服務器的註冊表,並再次運行程序成功。即使通過我的筆記本電腦(不是127.0.0.1)的IP,它工作得很好。請注意,我沒有設置註冊表的類路徑。
所以之後,我把東西移動到服務器(2008年)。我在那裏啓動了rmiregistry,沒有classpath,嘗試將server.jar連接到它,但失敗了。 (無法找到..spel類的exeption)所以我修復了類路徑....沒有效果....所以我打開了一個新的控制檯啓動了一個新的註冊表,將pacman.jar複製到c:\並運行了服務器.jar與-Djava.rmi.server.codebase = c:\ paramether ....無效......然後我設置了一個安全管理器...(System.setSecurityManager(new RMISecurityManager());
)並制定了一個策略,其中包含:grant {permission java.security.AllPermission;};
並執行服務器使用 server.jar -Djava.rmi.server.codebase = c:-Djava.security.policy = server.policy ...再次沒有效果。
我不斷收到同樣的異常:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: Tervoort.Bram.Packman.Spel
at sun.rmi.server.UnicastServerRef.oldDispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
是否有任何人有任何線索的問題是什麼?以及如何解決它?
o是的,我嘗試了-Djava.rmi.server.codebase = file:/ c:/packman.jar來..到相同的結果錯誤。 – Bram 2011-04-26 18:51:50