2010-11-21 3 views
0

Допустим, общественный IP маршрутизатора является 92.1.85.179
Локальный IP компьютера с сервером 192.168.0.2
Маршрутизатор переадресацию 92.1 .85.179: 5678 в 192.168.0.2:5678Проблемы с подключением к серверу RMI, который находится за маршрутизатором

на сервере у меня есть:

System.setProperty("java.rmi.server.hostname" , "92.1.85.179"); 
Registry registry = LocateRegistry.createRegistry(5678); 
registry.rebind("TheWebServer" , webServerInt); 

клиент имеет:

Registry registry = LocateRegistry.getRegistry("92.1.85.179" , 5678); 
server = (WebServerInterface) registry.lookup("TheWebServer"); 

Когда клиент находится в локальной сети на сервере, все в порядке. Когда клиент находится за пределами локальной сети, он получает java.rmi.ConnectException: подключение отказалось от хоста: 192.168.0.2;

Очевидно, что сервер предоставляет клиенту IP-адрес 192.168.0.2, так как он не отображается в коде, который, как я думал, должен был измениться, System.setProperty("java.rmi.server.hostname" , "92.1.85.179");.

Любой вход был бы оценен.

ответ

1

Вам также необходимо экспортировать удаленные объекты на порт 5678, и перед экспортом любых удаленных объектов вам необходимо установить java.rmi.server.hostname.

Смежные вопросы