2015-02-09 4 views
0

Мы разрабатываем клиент-серверное приложение с Java RMI, и для тестирования мы будем использовать компьютер как клиент, так и сервер. Таким образом, клиентское и серверное приложения должны вызывать rmiregistry на одной машине, но, очевидно, это две разные JVM. Как мы можем сделать это? Мы надеялись, что нужно только предоставить разные порты LocateRegistry, но мы получаем NotBoundException ... Каков правильный путь?Java RMI: несколько rmiregistry на том же компьютере

ответ

0

RMI Registry - это сервер, на котором хранится реестр служб.

Таким образом, ваш сервер должен подключиться к реестру RMI и зарегистрировать себя в нем, в то время как клиент должен подключиться к RMI реестра и посмотреть сервер

Так что вам нужно запустить одного RMI реестра на вашем компьютере.

Кажется, что вы получаете NotBoundException причина у вас есть два из них

+0

«Итак, ваш сервер должен подключиться к реестру RMI и зарегистрировать его в нем», что вы имеете в виду именно с этим? метод rebind()? –

+0

Я знаю, что у меня их два ... Мне нужен один для клиента, а один для сервера ... они два разных приложения, два разных JVM –

+0

Вам нужен один реестр, который будет использоваться как сервером (он будет использовать метод _bind_) и клиентом (который будет использовать метод _lookup_) – bedrin

1

Вы можете работать столько, сколько вам угодно, но почему? Вам не нужно. Попросите сервер запустить собственный реестр через LocateRegistry.createRegistry() и попросите клиента найти его. Кажется, вы думаете, что клиенту нужен собственный реестр, что неверно.

Если у вас есть NotBoundException ясно, либо служба не была связана вообще ни в одном из реестра, или вы искали неправильный.

+0

Хорошо, но клиент тоже должен иметь свой собственный реестр, иначе как сервер может вызвать удаленный метод на клиенте? –

+0

Клиент может зарегистрировать себя непосредственно на сервере, предоставив себя в качестве параметра удаленного метода, вызываемого на сервере, например 'registerClient (клиент RemoteClient)'. Нет необходимости в клиентском реестре вообще. – EJP

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