RMI-сервер за NAT-соединением отказался от хоста - PullRequest
2 голосов
/ 27 января 2012

У меня есть этот RMI-сервер, к которому я пытаюсь подключиться из дома, и я получаю это сообщение об ошибке:

java.rmi.ConnectException: соединение с хостом отказано: XX.XXX.XX.XXX; Вложенное исключение: java.net.ConnectException: истекло время ожидания соединения: connect

public GUILogic(GUI gui) throws NotBoundException, MalformedURLException, RemoteException{
        super();
        this.gui = gui;  
        String objectname = "chatter";

        String url = "rmi://" + hostname + "/" + objectname;

        cf = (ChatFront) Naming.lookup(url);


    }

У меня есть порт, перенаправленный на порт 1099 (на сервере), когда я пытаюсь http://www.canyouseeme.org/,, я нахожу порт. Каждый брандмауэр отключен на моем компьютере и сервере. Сервер работает нормально, если я настроил его в локальной сети.

В чем может быть проблема?

1 Ответ

2 голосов
/ 20 ноября 2013

У меня точно такая же проблема.

Я исправил это, установив имя хоста, которое может быть разрешено как сервером (за NAT), так и клиентом.

Затем я добавил этот аргумент на сервер в командной строке Java:

-Djava.rmi.server.hostname=yourhostname

И это сработало.

На стороне сервера, простой getRegistry работал отлично.

Registry registry = LocateRegistry.getRegistry();

Не забудьте переписаться с реестром и портами экспортированных объектов.

...