Spec-Zone.ru › OpenJDK 17

Класс RMIServerImpl

java.lang.Object
javax.management.remote.rmi.RMIServerImpl
Все реализованные интерфейсы:
Closeable, AutoCloseable, Remote, RMIServer
Непосредственные известные подклассы:
RMIIIOPServerImpl, 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, 2021, 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/17/docs/api/java.management.rmi/javax/management/remote/rmi/RMIServerImpl.html

Spec-Zone.ru

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