尊敬的堆栈溢出用户。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