在Netbeans下,我创建了一个包含接口"i_object“的项目,该接口表示远程对象"impl_i_object”,"impl_i_object“实现所有接口方法。一个主类指向客户端"Main_client“,另一个指向服务器"Main_server”...当我启动服务器和客户端时,它的工作很顺利。

但是当我将我的项目分成两个项目(客户端和服务器)时,请看屏幕截图:

在这里,当我运行服务器时,它可以工作,但当我运行客户端时,它显示以下错误:
Exception in thread "main" java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.lang.ClassNotFoundException: server.i_object (no security manager: RMI class loader disabled)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Naming.java:101)
at client.Main_client.main(Main_client.java:24)
Caused by: java.lang.ClassNotFoundException: server.i_object (no security manager: RMI class loader disabled)
at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:554)
at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:646)
at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:311)
at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:257)
at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1549)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1511)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
... 3 more
Java Result: 1有什么问题吗?
发布于 2012-01-24 21:52:55
上面写着:
无安全管理器:已禁用RMI类加载器
RMI需要安全管理器才能运行。
示例:
http://www.coderanch.com/t/459111/java/java/no-security-manager-rmi-class
更新:此link讨论了RMI中的安全性
发布于 2015-09-29 16:40:23
对我来说起作用的是,在每个项目服务器和客户端中使用相同的包名制作一个包中的接口副本
https://stackoverflow.com/questions/8987883
复制相似问题