работает клиентский сервер rmi в другом процессе ... несвязанное исключение - PullRequest
0 голосов
/ 27 августа 2009

Мне нужно написать клиент-серверное приложение RMI, на котором сервер работает в другом процессе. когда я выполняю свой код в том же процессе, все работает нормально, но при попытке запустить серверный код в новом процессе, используя

ProcessBuilder pb = new ProcessBuilder(
                        "java",
                        "-cp",
                        "bin",
                        "server.CodeboxServerImpl");

Я получаю несвязанное исключение, выданное клиентом.

я запустил rmiregestry, и в коде на клиенте и на сервере я использую

Registry reg = LocateRegistry.getRegistry("localhost");.

я что-то упустил?

1 Ответ

0 голосов
/ 27 августа 2009

Вы должны убедиться, что вы запустили процесс регистрации rmi .

Вы выбросите RemoteException, если у вас есть проблемы в LocateRegistry.getRegistry, а не NotBoundException.

Вы можете получить NotBoundException, если вы не связали заглушку на своем сервере с реестром. В коде вашего сервера вы можете привязать ProcessBuilder stub к реестру, вызвав reg.bind, используя имя. Затем клиент может получить stub по этому имени из реестра.

Прочитайте здесь , чтобы узнать подробнее.

...