Spec-Zone.ru › OpenJDK 25

Класс 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()
Возвращает удалённую заглушку для этого объекта сервера.

Методы, объявленные в классе 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(ClassLoader)

setMBeanServer

public void setMBeanServer(MBeanServer mbs)

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

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

getMBeanServer

public MBeanServer getMBeanServer()

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

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

Возвращает:
строку протокола для этого объекта.

clientClosed

protected void clientClosed(RMIConnection client) throws IOException

Метод, вызываемый при закрытии клиентского соединения, созданного методом makeClient. Подкласс, определяющий makeClient, должен обеспечить вызов этого метода при вызове метода close результирующего объекта. Это позволяет удалить его из списка соединений RMIServerImpl. Не является ошибкой, если client отсутствует в этом списке.

После удаления client из списка соединений этот метод вызывает closeClient(client).

Параметры:
client — закрытое клиентское соединение.
Исключения:
IOException — если метод closeClient(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 — если попытка закрыть сервер соединений завершилась неудачей.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзор концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management.rmi/javax/management/remote/rmi/RMIServerImpl.html

Spec-Zone.ru

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