Класс RMIServerImpl
- Все реализованные интерфейсы:
-
Closeable,AutoCloseable,Remote,RMIServer
- Прямые известные подклассы:
RMIJRMPServerImpl
public abstract class RMIServerImpl extends Object implements Closeable, RMIServer
Объект RMI, представляющий сервер соединения. Клиенты удалённого доступа могут устанавливать соединения, используя метод newClient(Object). Этот метод возвращает объект RMI, представляющий соединение.
Код пользователя обычно не ссылается на этот класс напрямую. Серверы соединений RMI обычно создаются с помощью класса RMIConnectorServer. Клиенты удалённого доступа обычно создают соединения либо с помощью JMXConnectorFactory, либо, создавая экземпляр RMIConnector.
Это абстрактный класс. Конкретные подклассы определяют детали объектов соединения клиентов.
- С:
- 1.5
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RMIServerImpl |
Создаёт новый RMIServerImpl. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
clientClosed |
Метод, вызываемый при закрытии соединения клиента, созданного методом makeClient. |
void |
close() |
Закрывает этот сервер соединения. |
protected abstract void |
closeClient |
Закрывает соединение клиента, созданное методом makeClient. |
protected abstract void |
closeServer() |
Вызывается методом close() для закрытия сервера подключения. |
protected abstract void |
export() |
Экспортирует этот объект RMI. |
ClassLoader |
getDefaultClassLoader() |
Получает значение по умолчанию ClassLoader для этого сервера подключения. |
MBeanServer |
getMBeanServer() |
MBeanServer, к которому подключен этот сервер подключения. |
protected abstract String |
getProtocol() |
Возвращает строку протокола для этого объекта. |
String |
getVersion() |
Версия протокола RMI Connector, поддерживаемая этим сервером подключения. |
protected abstract RMIConnection |
makeClient |
Создаёт новое соединение клиента. |
RMIConnection |
newClient |
Создаёт новое соединение клиента. |
void |
setDefaultClassLoader |
Устанавливает значение по умолчанию ClassLoader для этого сервера подключения. |
void |
setMBeanServer |
Устанавливает MBeanServer, к которому подключен этот сервер подключения. |
abstract Remote |
toStub() |
Возвращает удалённый заглушку для этого объекта сервера. |
Подробное описание конструкторов
RMIServerImpl
public RMIServerImpl(Map<String,?> env)
Создаёт новый RMIServerImpl.
- Параметры:
-
env- среда, содержащая атрибуты для новогоRMIServerImpl. Может быть null, что эквивалентно пустому Map.
Подробное описание методов
export
protected abstract void export() throws IOException
Экспортирует этот объект RMI.
- Исключения:
-
IOException- если этот объект RMI не может быть экспортирован.
toStub
public abstract Remote toStub() throws IOException
- Возвращает:
- удалённую заглушку.
- Исключения:
-
IOException- если заглушка не может быть получена — например, если RMIServerImpl ещё не экспортирован.
setDefaultClassLoader
public void setDefaultClassLoader(ClassLoader cl)
Устанавливает значение по умолчанию для ClassLoader для сервера подключения. Новые подключения клиентов будут использовать этот загрузчик классов. Существующие подключения клиентов не затронуты.
- Параметры:
-
cl- новыйClassLoaderдля использования этим сервером подключения. - См. также:
getDefaultClassLoader
public ClassLoader getDefaultClassLoader()
Получает значение по умолчанию для ClassLoader, используемое этим сервером подключения.
- Возвращает:
- значение по умолчанию для
ClassLoader, используемое этим сервером подключения. - См. также:
setMBeanServer
public void setMBeanServer(MBeanServer mbs)
Устанавливает MBeanServer, к которому подключен этот сервер подключения. Новые подключения клиентов будут взаимодействовать с этим MBeanServer. Существующие подключения клиентов не затронуты.
- Параметры:
-
mbs- новыйMBeanServer. Может быть null, но новые подключения клиентов будут отклоняться, пока оно таковым является. - См. также:
getMBeanServer
public MBeanServer getMBeanServer()
MBeanServer, к которому подключен этот сервер подключения. Это последнее значение, переданное методу setMBeanServer(javax.management.MBeanServer) в этом объекте, или null, если этот метод никогда не вызывался.
- Возвращает:
MBeanServer, к которому подключен этот коннектор.- См. также:
getVersion
public String getVersion()
RMIServerВерсия протокола RMI Connector, поддерживаемая этим сервером подключения. Это строка с следующим форматом:
protocol-version implementation-name
Версия protocol-version представляет собой серию двух или более неотрицательных целых чисел, разделённых точками (.). Реализация версии, описанной в этом документе, должна использовать строку 1.0 здесь.
После версии протокола должен следовать пробел, за которым следует имя реализации. Формат имени реализации не определён. Рекомендуется, чтобы он включал номер версии реализации. Реализация может использовать пустую строку в качестве имени реализации, например, по соображениям безопасности.
- Определено в:
-
getVersionв интерфейсеRMIServer - Возвращает:
- строку с форматом, описанным здесь.
newClient
public RMIConnection newClient(Object credentials) throws IOException
Создаёт новое подключение клиента. Этот метод вызывает makeClient и добавляет возвращённый объект подключения клиента в внутренний список. Когда этот RMIServerImpl закрывается с помощью метода close(), вызывается метод close() каждого объекта, оставшегося в списке.
Наличие объекта подключения клиента в этом внутреннем списке не препятствует его сбору мусора.
- Определено в:
-
newClientв интерфейсеRMIServer - Параметры:
-
credentials- этот объект определяет пользовательские учетные данные, которые будут переданы на сервер для проверки подлинности вызывающего лица перед созданиемRMIConnection. Может быть null. - Возвращает:
- новосозданный
RMIConnection. Обычно это объект, созданный методомmakeClient, хотя реализация может выбрать обернуть этот объект в другой объект, реализующийRMIConnection. - Исключения:
-
IOException- если новый объект клиента не может быть создан или экспортирован. -
SecurityException- если предоставленные учетные данные не позволяют серверу успешно проверить подлинность пользователя. -
IllegalStateException- еслиgetMBeanServer()имеет значение null.
makeClient
protected abstract RMIConnection makeClient(String connectionId, Subject subject) throws IOException
Создаёт новое подключение клиента. Этот метод вызывается общедоступным методом newClient(Object).
- Параметры:
-
connectionId- идентификатор нового подключения. У каждого подключения, открытого этим сервером подключения, будет разный идентификатор. Поведение не определено, если этот параметр имеет значение null. -
subject- аутентифицированный субъект. Может быть null. - Возвращает:
- новосозданный
RMIConnection. - Исключения:
-
IOException- если новый объект клиента не может быть создан или экспортирован.
closeClient
protected abstract void closeClient(RMIConnection client) throws IOException
Закрывает подключение клиента, созданное методом makeClient.
- Параметры:
-
client- подключение, ранее возвращённое методомmakeClient, для которого методcloseClientещё не был вызван. Поведение не определено, если эти условия нарушены, включая случай, когдаclientимеет значение null. - Исключения:
-
IOException- если подключение клиента не может быть закрыто.
getProtocol
protected abstract String getProtocol()
Возвращает строку протокола для этого объекта. Строка равна rmi для RMI/JRMP.
- Возвращает:
- строку протокола для этого объекта.
clientClosed
protected void clientClosed(RMIConnection client) throws IOException
Метод, вызываемый при закрытии подключения клиента, созданного методом makeClient. Подкласс, определяющий makeClient должен организовать вызов этого метода при вызове метода close результирующего объекта. Это позволяет удалить его из списка подключений сервера. Если client не находится в этом списке, это не ошибка.
После удаления client из списка подключений этот метод вызывает closeClient(client).
- Параметры:
-
client- подключение клиента, которое было закрыто. - Исключения:
-
IOException- если методcloseClient(javax.management.remote.rmi.RMIConnection)выбрасывает это исключение. -
NullPointerException- еслиclientимеет значение null.
close
public void close() throws IOException
Закрывает сервер подключения. Этот метод сначала вызывает метод closeServer(), чтобы новые подключения клиентов больше не принимались. Затем для каждого оставшегося объекта RMIConnection, возвращённого методом makeClient, вызывается метод close.
Поведение при вызове этого метода более одного раза не определено.
Если метод closeServer() выбрасывает исключение IOException, индивидуальные подключения всё равно закрываются, а затем исключение IOException выбрасывается из этого метода.
Если метод closeServer() возвращается нормально, но одно или несколько индивидуальных подключений выбрасывают исключение IOException, то после закрытия всех подключений одно из этих исключений IOException выбрасывается из этого метода. Если более одного подключения выбрасывает исключение IOException, то не определено, какое из них выбрасывается из этого метода.
- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Исключения:
-
IOException- если методcloseServer()или один из вызовов методаRMIConnection.close()вызвали исключениеIOException.
closeServer
protected abstract void closeServer() throws IOException
Вызывается методом close() для закрытия сервера подключения. После возврата из этого метода сервер подключения не должен принимать новые подключения.
- Возбуждает:
-
IOException- если попытка закрыть сервер подключения не удалась.
© 1993, 2023, 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.
https://docs.oracle.com/en/java/javase/21/docs/api/java.management.rmi/javax/management/remote/rmi/RMIServerImpl.html