Java 简单RMI应用程序

Java 简单RMI应用程序,java,rmi,Java,Rmi,我创建了一个简单的RMI应用程序,它只向RMI服务器发送一条消息。但是当发送一条消息时,我得到了错误消息。我正在使用eclipse运行程序 向10.0.0.12:3233发送问候 java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.lang.ClassNotFoundException: com.zoondia.ReceiveMessageInterface (no sec

我创建了一个简单的RMI应用程序,它只向RMI服务器发送一条消息。但是当发送一条消息时,我得到了错误消息。我正在使用eclipse运行程序

向10.0.0.12:3233发送问候

java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
    java.lang.ClassNotFoundException: com.zoondia.ReceiveMessageInterface (no security manager: RMI class loader disabled)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at test.rmi.RmiClient.main(RmiClient.java:28)
Caused by: java.lang.ClassNotFoundException: com.zoondia.ReceiveMessageInterface (no security manager: RMI class loader disabled)
    at sun.rmi.server.LoaderHandler.loadProxyClass(Unknown Source)
    at java.rmi.server.RMIClassLoader$2.loadProxyClass(Unknown Source)
    at java.rmi.server.RMIClassLoader.loadProxyClass(Unknown Source)
    at sun.rmi.server.MarshalInputStream.resolveProxyClass(Unknown Source)
    at java.io.ObjectInputStream.readProxyDesc(Unknown Source)
    at java.io.ObjectInputStream.readClassDesc(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
任何人都知道问题所在。我正在使用eclipse运行程序。我在eclipse中需要rmi compailor,还是在运行程序时它会自动compails

谢谢,
VKS.

异常表示在服务器中安装RMI安全管理器失败。除非设置了安全管理器,否则RMI将无法从您的客户端下载任何代码

您需要在服务器代码中执行以下操作:

if (System.getSecurityManager() == null) 
{
    System.setSecurityManager(new java.rmi.RMISecurityManager());
}

有关更多信息,请查看javadocs。

异常表明名为的类不存在于客户端的类路径中

这可能是由于以下两个原因之一:

  • 您没有使用codebase特性,也没有在客户机JAR文件中包含该类

  • 您正在使用代码库功能,但尚未安装安全管理器


  • 对于第一个错误,即解组参数,我有过一次错误。确保在运行注册表之前将目录更改为src文件夹


    对于第二个错误,请确保您已经为服务器和客户端创建了策略文件。

    hi Brandon,感谢您的快速回复,现在我从客户端收到了一个新的错误:拒绝访问java.net.socketpermission connect resolve…知道吗?您是否指定了安全策略(例如,使用java.security.policy命令行选项)在服务器端?