Класс 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()

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

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

Методы, объявленные в интерфейсе javax.management.remote.rmi.RMIServer

getVersion

Конструкторы

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)

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

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

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

closeServer

protected abstract void closeServer()
                             throws IOException

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

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

© 1993, 2020, 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/11/docs/api/java.management.rmi/javax/management/remote/rmi/RMIServerImpl.html

Spec-Zone .ru
спецификации, руководства, описания, API