Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Определяет, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация устарела и может быть удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо истечения определённого промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо истечения определённого промежутка реального времени.

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

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, поддерживаемая этим сервером соединителя. Это строка следующего формата:

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, 2026, 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.

Spec-Zone.ru

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