rmi-сервер прослушивает 2 разных IP-адреса - PullRequest
0 голосов
/ 26 мая 2020

Я относительно новичок в Java. В настоящее время я работаю над приложением, в котором есть сервер, написанный на rmi.

Он прослушивает порт 2020 127.0.0.1 для клиентов, отправляющих удаленные журналы. Мой новый клиент находится в контейнере docker и требует от меня go через другой IP-адрес, который является шлюзом контейнера. Теперь мне нужно прослушать этот IP-адрес 169.XXX:2020 (не могу изменить какой-либо код существующих клиентов)

RMIClientSocketFactory csf = NAClientSocketFactory.getInstance();
RMIServerSocketFactory ssf = NAServerSocketFactory.getInstance();
Registry registry = LocateRegistry.createRegistry( REGISTRY_PORT, csf, ssf);

logger = new RemoteAuditLoggerImpl ();
stub = (IRemoteAuditLogger) UnicastRemoteObject.exportObject(logger, REGISTRY_PORT, csf, 
ssf);
registry.bind (REMOTE_AUDIT_LOGGER_RMI_NAME, stub);

Теперь, если я хочу прослушивать 169.XXX, создание реестра не позволяет я выбираю IP. Я могу сделать это только с помощью ssf RMIServerSocketFactory. Допустим я меняю там IP, 127.0.0.1:2020 не откроется. Попытка сделать дубликат

Registry registry = LocateRegistry.createRegistry( REGISTRY_PORT, csf, ssf);

вызовет: java .rmi.server.ExportException: внутренняя ошибка: ObjID уже используется

Возможно ли это даже для регистрации с использованием 2 IP-адресов ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...