java.rmi.ConnectException: Connection refused to host

220
15 октября 2018, 12:10

При запуске клиент-серверного приложения, использующего механизм RMI, вылетает исключение java.rmi.ConnectException: Connection refused to host.

В самой программе используются четыре исходных файла:

AddServerIntf.java

import java.rmi.Remote;
import java.rmi.RemoteException;
interface AddServerIntf extends Remote {
    double add(double d1, double d2) throws RemoteException;
}

AddServerImpl.java

import java.rmi.*;
import java.rmi.server.*;
public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf {
    public AddServerImpl() throws RemoteException {
    }
    public double add(double d1, double d2) throws RemoteException {
        return d1 + d2;
    }
}

AddServer.java

import java.rmi.*;
public class AddServer {
    public static void main(String args[]) {
        try {
            AddServerImpl addServerImpl = new AddServerImpl();
            Naming.rebind("AddServer", addServerImpl);
        } catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}

AddClient.java

import java.rmi.*;
public class AddClient {
    public static void main(String args[]) {
        try {
            String addServerURL = "rmi://" + args[0] + "/AddServer";
            AddServerIntf addServerIntf = (AddServerIntf) Naming.lookup(addServerURL);
            System.out.println("The first number is: " + args[1]);
            double d1 = Double.valueOf(args[1]).doubleValue();
            System.out.println("The second number is: " + args[2]);
            double d2 = Double.valueOf(args[2]).doubleValue();
            System.out.println("The sum is: " + addServerIntf.add(d1, d2));
        } catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}

Как решить данную проблему?

Answer 1

В данном случае исключение java.rmi.ConnectException: Connection refused to host может возникать по причине не запущенного реестра RMI на серверной машине.

Решение

Запустите RMI реестр используя команду: start rmiregistry.

Проверим без использование данной команды:

Запускаем сервер:

Теперь проверяем с использованием команды start rmiregistry:

Перезапускаем успешно сервер:

READ ALSO
Как использовать свои html теги в textview?

Как использовать свои html теги в textview?

Например есть текст: "<![CDATA[Трали <c>вали</c>]]>"и вывожу я его так:

186
Android Java RecyclerView. Не отображается на экране

Android Java RecyclerView. Не отображается на экране

Видел подобные вопросы, не нашёл ответа на свойЛибо смотрю не туда

184
Немного едет верстка на телефонах

Немного едет верстка на телефонах

Кто знает, почему на одних телефонах едет верстка, а на других нет? Причем в инспекторе 320-1920 все нормально выглядитНапишу ссылку на всякий...

178
Подключение шрифтов в stylus через mixin font-face

Подключение шрифтов в stylus через mixin font-face

есть у меня миксин font-face в sass

214