Интерфейс реестра
- Все суперинтерфейсы:
- Remote
public interface Registry extends Remote
Registry — это удаленный интерфейс простого удаленного объекта реестра, который предоставляет методы для хранения и извлечения ссылок на удаленные объекты, связанных с произвольными строковыми именами. Методы bind, unbind, и rebind используются для изменения связей имен в реестре, а методы lookup и list используются для запроса текущих связей имен.
В типичном использовании Registry позволяет осуществлять загрузку RMI-клиента: он предоставляет простой способ для клиента получить начальную ссылку на удаленный объект. Поэтому реализация удаленного объекта реестра обычно экспортируется с известным адресом, например, с известным ObjID и номером порта TCP (по умолчанию 1099).
Класс LocateRegistry предоставляет программный API для построения ссылки на загрузку Registry по удаленному адресу (см. статические методы getRegistry) и для создания и экспорта Registry в текущей виртуальной машине по определенному локальному адресу (см. статические методы createRegistry).
Реализация Registry может выбрать ограничение доступа к некоторым или всем своим методам (например, методы, которые изменяют связи реестра, могут быть ограничены вызовами, исходящими из локального узла). Если метод Registry выбирает отказ в доступе для данного вызова, его реализация может бросить исключение AccessException, которое (поскольку оно расширяет RemoteException) будет обернуто в ServerException при перехвате удаленным клиентом.
Имена, используемые для связей в Registry, — это чистые строки, не анализируемые. Сервис, который хранит свою удалённую ссылку в Registry, может использовать имя пакета в качестве префикса в имени связи, чтобы уменьшить вероятность коллизий имён в реестре.
- С момента:
- JDK1.1
- См. также:
LocateRegistry
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static int |
REGISTRY_PORT Известный порт для реестра. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
bind(String name,
Remote obj) Связывает удалённую ссылку с указанным |
String[] |
list() Возвращает массив имён, связанных в этом реестре. |
Remote |
lookup(String name) Возвращает удалённую ссылку, связанную с указанным |
void |
rebind(String name,
Remote obj) Заменяет привязку для указанного |
void |
unbind(String name) Удаляет привязку для указанного |
Поля
REGISTRY_PORT
static final int REGISTRY_PORT
Известный порт для реестра.
- См. также:
- Значения константных полей
Методы
lookup
Remote lookup(String name)
throws RemoteException,
NotBoundException,
AccessException Возвращает удалённую ссылку, связанную с указанным name в этом реестре.
- Параметры:
-
name- имя удалённой ссылки для поиска - Возвращает:
- ссылка на удалённый объект
- Исключения:
-
NotBoundException- еслиnameв настоящее время не привязано -
RemoteException- если удалённая связь с реестром не удалась; если исключение являетсяServerException, содержащимAccessException, то реестр отказывается предоставить вызывающему лицу доступ для выполнения этой операции -
AccessException- если этот реестр локальный и он отказывается предоставить вызывающему лицу доступ для выполнения этой операции -
NullPointerException- еслиnameявляетсяnull
bind
void bind(String name,
Remote obj)
throws RemoteException,
AlreadyBoundException,
AccessException Связывает удалённую ссылку с указанным name в этом реестре.
- Параметры:
-
name- имя, которое следует связать с удалённой ссылкой -
obj- ссылка на удалённый объект (обычно заглушка) - Исключения:
-
AlreadyBoundException- еслиnameуже привязано -
RemoteException- если удалённая связь с реестром не удалась; если исключение являетсяServerExceptionсодержащимAccessException, то реестр отказывается предоставить вызывающему лицу доступ для выполнения этой операции (например, если она исходит с нелокального хоста) -
AccessException- если этот реестр локальный и он отказывается предоставить вызывающему лицу доступ для выполнения этой операции -
NullPointerException- еслиnameявляетсяnull, или еслиobjявляетсяnull
unbind
void unbind(String name)
throws RemoteException,
NotBoundException,
AccessException Удаляет привязку для указанного name в этом реестре.
- Параметры:
-
name- имя привязки для удаления - Исключения:
-
NotBoundException- еслиnameв настоящее время не привязано -
RemoteException- если удалённая связь с реестром не удалась; если исключение являетсяServerExceptionсодержащимAccessException, то реестр отказывается предоставить вызывающему лицу доступ для выполнения этой операции (например, если она исходит с нелокального хоста) -
AccessException- если этот реестр локальный и он отказывается предоставить вызывающему лицу доступ для выполнения этой операции -
NullPointerException- еслиnameявляетсяnull
rebind
void rebind(String name,
Remote obj)
throws RemoteException,
AccessException Заменяет привязку для указанного name в этом реестре предоставленной удаленной ссылкой. Если существует существующая привязка для указанного name, она отбрасывается.
- Параметры:
-
name- имя, которое следует связать с удалённой ссылкой -
obj- ссылка на удалённый объект (обычно заглушка) - Исключения:
-
RemoteException- если удалённая связь с реестром не удалась; если исключение являетсяServerException, содержащимAccessException, то реестр отказывается предоставить вызывающему лицу доступ для выполнения этой операции (если она исходит с нелокального хоста) -
AccessException- если этот реестр локальный и он отказывается предоставить вызывающему лицу доступ для выполнения этой операции -
NullPointerException- еслиnameявляетсяnull, или еслиobjявляетсяnull
list
String[] list()
throws RemoteException,
AccessException Возвращает массив имён, связанных в этом реестре. Массив будет содержать моментальное изображение имён, связанных в этом реестре на момент вызова данного метода.
- Возвращает:
- массив имён, связанных в этом реестре
- Исключения:
-
RemoteException- если удалённая связь с реестром не удалась; если исключение являетсяServerException, содержащимAccessException, то реестр отказывается предоставить вызывающему лицу доступ для выполнения этой операции -
AccessException- если этот реестр локальный и он отказывается предоставить вызывающему лицу доступ для выполнения этой операции
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.