Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > RMI Callback на двух сетевых интерфейсах


Автор: Rusico 26.12.2013, 12:51
Привет всем. Проблема вот в чём - поднимаю LocateRegistry на локальном и внешнем интерфейсах, всё работает прекрасно до тех пор пока не нужен Callback. Вот код сервера:

Код

System.setProperty("java.rmi.server.hostname", LOCAL_IP);
Registry registry = LocateRegistry.createRegistry(7000);
registry.rebind(rminame, new ServerImpl(7001));

System.setProperty("java.rmi.server.hostname", SERVER_IP);
Registry registry = LocateRegistry.createRegistry(7002);
registry.rebind(rminame, new ServerImpl(7003));


Если клиент соединяется к последнему (SERVER_IP), то всё замечательно работает, а если к первому (LOCAL_IP), то соединение происходит штатно, но вот callback работать не хочет, выдаёт ошибку что не может соединиться с SERVER_IP.

Если поднять сначала на локальном интерфейсе, то проблема обратная.

Может кто сталкивался? - почему постоянно откуда то берётся последнее значение java.rmi.server.hostname, а не значение из LocateRegistry. Как это обойти? Причём пробовал даже прописывать свои фабрики создания сокетов, но это не помогает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)