Discuss / Java / 提示:如果RMI出错ClassNotFound,那么需要保证客户端和服务端目录结构相同

提示:如果RMI出错ClassNotFound,那么需要保证客户端和服务端目录结构相同

Topic source

如题,registry根据目录结构查找的,目录不一样会找不到

RMI 异常 no security manager: RMI class loader disabled

  此异常主要是客户端的包路径与服务端的包路径不一致,改成一致就ok了。

这是因为在编译class文件的时候,这个class文件内部已经包含了package com.cn;这样的内容,如果在部署的时候,不严格按照这个目录部署的话,服务器就会找不到。

https://www.cnblogs.com/leiyf/p/5564360.html

廖雪峰

#3 Created at ... [Delete] [Delete and Lock User]

不要搞混了,这是classpath机制

感谢廖老师回复,我有个疑问,就是服务器端的WorldClock skeleton = (WorldClock) UnicastRemoteObject.exportObject(worldClock, 0);

这句里,UnicastRemoteObject.exportObject的第二个参数port,和Registry registry = LocateRegistry.createRegistry(1099);

这句里,createRegistry的参数port,是什么关系呢?我在网上似乎查不到相关说明,看官方文档也写得很简略。

我自己将exportObject(worldClock, 0); 里的0,换成其它任意端口,发现都能运行,是因为这个参数并不重要吗?


  • 1

Reply