Spec-Zone.ru › OpenJDK 8

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

Это абстрактный класс. Конкретные подклассы определяют детали объектов подключений клиентов, такие как использование JRMP или IIOP.

С момента:
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 и iiop для RMI/IIOP.

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

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 в интерфейсе Closeable
Определено в:
close в интерфейсе AutoCloseable
Исключения:
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.

Spec-Zone.ru

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