Spec-Zone.ru › OpenJDK 24

Класс 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 результатного объекта. Это позволяет удалить его из списка подключений RMIServerImpl. Не является ошибкой, если 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, индивидуальные подключения всё равно закрываются, и затем это исключение выбрасывается из этого метода.

Если метод closeServer() возвращает управление нормально, но одно или несколько индивидуальных подключений вызывают исключение IOException, то после закрытия всех подключений одно из этих исключений IOException выбрасывается из этого метода. Если более одного подключения вызывают исключение IOException, то не определено, какое из них выбрасывается из этого метода.

Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Исключения:
IOException - если метод closeServer() или один из вызовов RMIConnection.close() вызвал исключение IOException.

closeServer

protected abstract void closeServer() throws IOException

Вызывается методом close() для закрытия сервера подключения. После возвращения из этого метода сервер подключения не должен принимать новые подключения.

Исключения:
IOException - если попытка закрыть сервер подключения завершилась неудачно.

© 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://download.java.net/java/early_access/jdk24/docs/api/java.management.rmi/javax/management/remote/rmi/RMIServerImpl.html

Spec-Zone.ru

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