Spec-Zone.ru › OpenJDK 21

Класс RMIServerImpl

java.lang.Object
javax.management.remote.rmi.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(Map<String,?> env)
Создаёт новый RMIServerImpl.

Краткое описание методов

Модификатор и тип Метод Описание
protected void clientClosed(RMIConnection client)
Метод, вызываемый при закрытии соединения клиента, созданного методом makeClient.
void close()
Закрывает этот сервер соединения.
protected abstract void closeClient(RMIConnection client)
Закрывает соединение клиента, созданное методом 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(String connectionId, Subject subject)
Создаёт новое соединение клиента.
RMIConnection newClient(Object credentials)
Создаёт новое соединение клиента.
void setDefaultClassLoader(ClassLoader cl)
Устанавливает значение по умолчанию ClassLoader для этого сервера подключения.
void setMBeanServer(MBeanServer mbs)
Устанавливает MBeanServer, к которому подключен этот сервер подключения.
abstract Remote toStub()
Возвращает удалённый заглушку для этого объекта сервера.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

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()

getDefaultClassLoader

public ClassLoader getDefaultClassLoader()

Получает значение по умолчанию для ClassLoader, используемое этим сервером подключения.

Возвращает:
значение по умолчанию для ClassLoader, используемое этим сервером подключения.
См. также:
  • setDefaultClassLoader(java.lang.ClassLoader)

setMBeanServer

public void setMBeanServer(MBeanServer mbs)

Устанавливает MBeanServer, к которому подключен этот сервер подключения. Новые подключения клиентов будут взаимодействовать с этим MBeanServer. Существующие подключения клиентов не затронуты.

Параметры:
mbs - новый MBeanServer. Может быть null, но новые подключения клиентов будут отклоняться, пока оно таковым является.
См. также:
  • getMBeanServer()

getMBeanServer

public MBeanServer getMBeanServer()

MBeanServer, к которому подключен этот сервер подключения. Это последнее значение, переданное методу setMBeanServer(javax.management.MBeanServer) в этом объекте, или null, если этот метод никогда не вызывался.

Возвращает:
MBeanServer, к которому подключен этот коннектор.
См. также:
  • setMBeanServer(javax.management.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API