Интерфейс Registry
- Все суперинтерфейсы:
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, может использовать имя пакета в качестве префикса привязки, чтобы снизить вероятность конфликтов имен в реестре.
- С:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
REGISTRY_PORT |
Известный порт реестра. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
bind |
Связывает ссылку на удаленный объект с указанным name в этом реестре. |
String[] |
list() |
Возвращает массив имен, связанных в этом реестре. |
Remote |
lookup |
Возвращает ссылку на удаленный объект, связанную с указанным name в этом реестре. |
void |
rebind |
Заменяет привязку указанного name в этом реестре переданной ссылкой на удаленный объект. |
void |
unbind |
Удаляет привязку указанного 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, 2025, 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.