Java RMI:连接被拒绝

我为RMI的客户编写了以下代码。 但是得到

java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: java.net.ConnectException: Connection refused: connect 

代码:

 import java.rmi.*; import java.net.*; import java.rmi.registry.*; class client { public static void main(String [] ars) { Iface serv; Registry r; String serveraddr = ars[0]; String serverport = ars[1]; String text = "Hey jude"; System.out.println("Sending" + text); try{ r = LocateRegistry.getRegistry( serveraddr, (new Integer(serverport)).intValue() ); serv = (Iface) r.lookup("rmi://server"); serv.receive(text); } catch(Exception e){ System.out.println(e); } } } 

如果您在绑定,重新绑定或查找时获得该命令,则注册表未运行。 如果您进行远程调用,请参阅Javadoc随附的RMI FAQ中的 A.1项,如果您运行Linux,还要检查/ etc / hosts文件是否将127.0.0.1映射到localhost和您的真实IP地址你真正的主机名 – 这是一些Linux发行版中的常见问题。

我遇到了同样的问题。 这很愚蠢但只是我忘了启动RMI注册过程。

因此,您还需要运行RMI注册表进程

 rmiregistry 

在尝试使用RMI注册表重新绑定(address,obj)之前。