Как программно остановить сервер RMI и уведомить всех клиентов - PullRequest
1 голос
/ 04 июня 2011

Я разработал приложение RMI, в котором сервер RMI должен запускаться несколько раз, а также несколько раз останавливаться.

  • Как остановить сервер RMI, не закрывая приложение?*
  • Как отправить всем клиентам уведомление о том, что сервер остановится?

Ответы [ 2 ]

1 голос
/ 04 июня 2011

Я не уверен, что вы имеете в виду под "сервером RMI", реестром RMI, который вы не можете остановить программно. Но вы можете остановить свою службу (привязанную к реестру RMI). Вы должны вызвать пользовательский метод для чистого отключения службы, а затем unbind из реестра.

Перед этим отключением и отменой привязки вы должны сообщить всем подключенным клиентам, что служба будет закрыта. Это уведомление может быть сделано с помощью обратного вызова. Поиск по RMI callback даст вам множество примеров и учебных пособий.

0 голосов
/ 05 июня 2011

Вам не нужно отправлять уведомление.Клиенты неэкспортированного удаленного объекта получат NoSuchObjectEzception в следующий раз, когда они сделают для него удаленный вызов метода.Им просто нужно распознать ситуацию.

...