Java RMI: соединение отказано - PullRequest
3 голосов
/ 21 февраля 2011

Я написал следующий код для клиента 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 ]

11 голосов
/ 01 марта 2011

Если вы получаете это при привязке, повторном связывании или поиске, Реестр не работает. Если вы выполняете удаленный вызов, см. Пункт A.1 в RMI FAQ , поставляемом с Javadoc, и, если вы работаете в Linux, также проверьте, что ваш файл / etc / hosts отображает 127.0.0.1 в localhost и ваш реальный IP-адрес для вашего реального имени хоста - это было распространенной проблемой в некоторых дистрибутивах Linux.

0 голосов
/ 23 января 2015

Я встретил ту же проблему.Это глупо, но я просто забыл запустить процесс регистрации RMI.

Итак, вам также нужно запустить процесс реестра RMI

rmiregistry 

Перед попыткой выполнить повторную привязку (адрес, объект) с реестром RMI.

...