Java RMI:连接被拒绝

时间:2011-02-21 15:14:48

标签: 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);
        }
    }   
}

2 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:0)

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

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

rmiregistry 

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