Spec-Zone.ru › OpenJDK 21

Класс RMIConnectorServer

java.lang.Object
javax.management.NotificationBroadcasterSupport
javax.management.remote.JMXConnectorServer
javax.management.remote.rmi.RMIConnectorServer
Все реализованные интерфейсы:
MBeanRegistration, NotificationBroadcaster, NotificationEmitter, JMXAddressable, JMXConnectorServerMBean
public class RMIConnectorServer extends JMXConnectorServer

Сервер подключения JMX API, создающий подключения на основе RMI для удалённых клиентов. Обычно такие серверы создаются с помощью JMXConnectorServerFactory. Однако, специализированные приложения могут использовать этот класс напрямую, например, с объектом RMIServerImpl.

С момента:
1.5

Краткое описание полей

Модификатор и тип Поле Описание
static final String CREDENTIALS_FILTER_PATTERN
Имя атрибута, определяющего строку шаблона ObjectInputFilter для фильтрации классов, приемлемых для вызова удалённого метода RMIServer.newClient().
static final String JNDI_REBIND_ATTRIBUTE
Имя атрибута, определяющего, должен ли RMIServer -заглушка, представляющая сервер подключения RMI, перезаписывать существующую заглушку по тому же адресу.
static final String RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE
Имя атрибута, определяющего RMIClientSocketFactory для объектов RMI, созданных в связке с этим подключением.
static final String RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE
Имя атрибута, определяющего RMIServerSocketFactory для объектов RMI, созданных в связке с этим подключением.
static final String SERIAL_FILTER_PATTERN
Этот атрибут определяет шаблон, из которого создаётся ObjectInputFilter, который будет использоваться при десериализации объектов, отправленных клиенту к JMXConnectorServer.

Поля, объявленные в классе javax.management.remote.JMXConnectorServer

AUTHENTICATOR

Краткое описание конструкторов

Конструктор Описание
RMIConnectorServer(JMXServiceURL url, Map<String,?> environment)
Создаёт RMIConnectorServer.
RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, MBeanServer mbeanServer)
Создаёт RMIConnectorServer для заданного сервера MBean.
RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, RMIServerImpl rmiServerImpl, MBeanServer mbeanServer)
Создаёт RMIConnectorServer для заданного сервера MBean.

Краткое описание методов

Модификатор и тип Метод Описание
JMXServiceURL getAddress()
Адрес этого сервера подключения.
Map<String,?> getAttributes()
Атрибуты этого сервера подключения.
boolean isActive()
Определяет, активен ли сервер подключения.
void start()
Активирует сервер подключения, то есть начинает прослушивание подключений клиентов.
void stop()
Деактивирует сервер подключения, то есть прекращает прослушивание подключений клиентов.
JMXConnector toJMXConnector(Map<String,?> env)
Возвращает заглушку клиента для этого сервера подключения.

Методы, объявленные в классе javax.management.remote.JMXConnectorServer

connectionClosed, connectionFailed, connectionOpened, getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister, setMBeanServerForwarder

Методы, объявленные в классе javax.management.NotificationBroadcasterSupport

addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

JNDI_REBIND_ATTRIBUTE

public static final String JNDI_REBIND_ATTRIBUTE

Имя атрибута, указывающего, следует ли RMIServer штампу, представляющему сервер RMI-соединения, перезаписывать существующий штамп по тому же адресу. Значение этого атрибута, если оно есть, должно быть строкой, равной, без учёта регистра, "true" или "false". Значение по умолчанию — false.

См. также:
  • Значения константных полей

RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE

public static final String RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE

Имя атрибута, задающего RMIClientSocketFactory для объектов RMI, созданных в сочетании с этим соединением. Значение атрибута должно быть типа RMIClientSocketFactory и может быть указано только в аргументе Map при создании сервера соединения.

См. также:
  • Значения константных полей

RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE

public static final String RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE

Имя атрибута, задающего RMIServerSocketFactory для объектов RMI, созданных в сочетании с этим соединением. Значение атрибута должно быть типа RMIServerSocketFactory и может быть указано только в аргументе Map при создании сервера соединения.

См. также:
  • Значения константных полей

CREDENTIALS_FILTER_PATTERN

public static final String CREDENTIALS_FILTER_PATTERN
Имя атрибута, задающего строку шаблона ObjectInputFilter, чтобы отфильтровать классы, приемлемые для RMIServer.newClient() удаленного вызова метода.

Шаблон фильтра должен быть в том же формате, что и в ObjectInputFilter.Config.createFilter(java.lang.String)

Этот список разрешенных классов должен соответствовать транзитивному замыканию класса (или классов) учетных данных, используемых установленным JMXAuthenticator, связанным с реализацией RMIServer. Если атрибут не задан, любой класс считается приемлемым.

См. также:
  • ObjectInputFilter
  • Значения константных полей

SERIAL_FILTER_PATTERN

public static final String SERIAL_FILTER_PATTERN
Этот атрибут определяет шаблон для создания ObjectInputFilter, который будет использоваться при десериализации объектов, отправляемых в JMXConnectorServer любым клиентом.

Фильтр будет вызываться для любого класса, найденного в сериализованном потоке, отправленном на сервер клиентом, включая все определённые JMX классы (такие как ObjectName), все параметры методов и, если присутствуют в потоке, все классы, транзитивно ссылаемые сериализованной формой любого десериализованного объекта. Шаблон должен быть в том же формате, что и в ObjectInputFilter.Config.createFilter(java.lang.String). Он может определять список разрешенных классов, список отклоненных классов, максимальную глубину десериализованных объектов и т.д.

Для работоспособности фильтр должен разрешать по крайней мере все конкретные типы в транзитивном замыкании всех объектов, которые могут быть сериализованы при сериализации всех классов JMX, указанных в качестве параметров в интерфейсе RMIConnection, плюс все классы, которые client может потребоваться передать, обернутыми в маршализованные объекты, для взаимодействия с зарегистрированными MBeans в MBeanServer. Это потенциально включает все конкретные JMX OpenTypes и классы, которые они используют в своей сериализованной форме.

Необходимо быть внимательным при определении такого фильтра, так как слишком узкий список разрешенных классов или слишком широкий список отклоненных классов может помешать законным клиентам взаимодействовать с JMXConnectorServer.

См. также:
  • Значения константных полей

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

RMIConnectorServer

public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment) throws IOException

Создаёт RMIConnectorServer. Это эквивалентно вызову RMIConnectorServer(directoryURL,environment,null,null)

Параметры:
url - URL, определяющий способ создания сервера соединения. Не может быть null.
environment - атрибуты, управляющие созданием и сохранением объекта RMI. Может быть null, что эквивалентно пустому Map.
Исключения:
IllegalArgumentException - если url равно null.
MalformedURLException - если url не соответствует синтаксису RMI-соединения или если его протокол не распознаётся данной реализацией. Только "rmi" допустимо при использовании этого конструктора.
IOException - если сервер соединения не может быть создан по какой-либо причине или если неизбежно, что метод start завершится неудачей.

RMIConnectorServer

public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, MBeanServer mbeanServer) throws IOException

Создаёт RMIConnectorServer для указанного сервера MBean. Это эквивалентно вызову RMIConnectorServer(directoryURL,environment,null,mbeanServer)

Параметры:
url - URL, определяющий способ создания сервера соединения. Не может быть null.
environment - атрибуты, управляющие созданием и сохранением объекта RMI. Может быть null, что эквивалентно пустому Map.
mbeanServer - сервер MBean, к которому присоединяется новый сервер соединения, или null, если он будет присоединён путём регистрации как MBean в сервере MBean.
Исключения:
IllegalArgumentException - если url равно null.
MalformedURLException - если url не соответствует синтаксису RMI-соединения или если его протокол не распознаётся данной реализацией. Только "rmi" допустимо при использовании этого конструктора.
IOException - если сервер соединения не может быть создан по какой-либо причине или если неизбежно, что метод start завершится неудачей.

RMIConnectorServer

public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, RMIServerImpl rmiServerImpl, MBeanServer mbeanServer) throws IOException

Создаёт RMIConnectorServer для указанного сервера MBean.

Параметры:
url - URL, определяющий способ создания сервера соединения. Не может быть null.
environment - атрибуты, управляющие созданием и сохранением объекта RMI. Может быть null, что эквивалентно пустому Map.
rmiServerImpl - Реализация интерфейса RMIServer, соответствующая типу протокола, указанному в url. Если этот параметр не null, тип протокола, указанный в url, не ограничен и предполагается допустимым. В противном случае распознаётся только "rmi".
mbeanServer - сервер MBean, к которому присоединяется новый сервер соединения, или null, если он будет присоединён путём регистрации как MBean в сервере MBean.
Исключения:
IllegalArgumentException - если url равно null.
MalformedURLException - если url не соответствует синтаксису RMI-соединения или если его протокол не распознаётся данной реализацией. Только "rmi" распознаётся, когда rmiServerImpl равно null.
IOException - если сервер соединения не может быть создан по какой-либо причине или если неизбежно, что метод start завершится неудачей.
См. также:
  • start()

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

toJMXConnector

public JMXConnector toJMXConnector(Map<String,?> env) throws IOException

Возвращает клиентский заглушку для этого сервера подключения. Клиентская заглушка — это сериализуемый объект, чья метод connect может быть использован для создания нового подключения к этому серверу подключения.

Specified by:
toJMXConnector in interface JMXConnectorServerMBean
Overrides:
toJMXConnector in class JMXConnectorServer
Parameters:
env - параметры клиентского подключения того же типа, что могли бы быть предоставлены методу JMXConnector.connect(Map). Может быть null, что эквивалентно пустому карте.
Returns:
клиентская заглушка, которая может быть использована для создания нового подключения к этому серверу подключения.
Throws:
UnsupportedOperationException - если этот сервер подключения не поддерживает создание клиентских заглушек.
IllegalStateException - если JMXConnectorServer не запущен (см. isActive()).
IOException - если проблема с коммуникацией означает, что заглушка не может быть создана.

start

public void start() throws IOException

Активирует сервер подключения, то есть начинает прослушивание клиентских подключений. Вызов этого метода, когда сервер подключения уже активен, не имеет эффекта. Вызов этого метода, когда сервер подключения был остановлен, генерирует IOException.

Поведение этого метода при первом вызове зависит от параметров, предоставленных при создании, как описано ниже.

Во-первых, требуется объект подкласса RMIServerImpl для экспорта сервера подключения через RMI:

  • Если в конструктор был передан RMIServerImpl, он используется.
  • В противном случае, если JMXServiceURL был null или его протокольная часть была rmi, создается объект типа RMIJRMPServerImpl.
  • В противном случае, реализация может создать собственный подкласс RMIServerImpl, или она может выбросить MalformedURLException.

Если указанный адрес включает URL-адрес каталога JNDI, как указано в документации пакета для javax.management.remote.rmi, то это RMIConnectorServer будет инициализироваться, связывая RMIServerImpl с указанным адресом.

Если часть пути URL JMXServiceURL была пустой или содержала только один слеш (/), то объект RMI не будет связан с каталогом. Вместо этого ссылка на него будет закодирована в пути URL-адреса RMIConnectorServer (возвращаемого методом getAddress()). Кодировки для rmi описаны в документации пакета для javax.management.remote.rmi.

Поведение в случае, если URL-путь не является пустым или URL каталога JNDI, или если протокол не rmi, определяется реализацией и может включать выброс MalformedURLException при создании или запуске сервера подключения.

Throws:
IllegalStateException - если сервер подключения не присоединен к серверу MBean.
IOException - если сервер подключения не может быть запущен.

stop

public void stop() throws IOException

Деактивирует сервер подключения, то есть прекращает прослушивание клиентских подключений. Вызов этого метода также закроет все клиентские подключения, созданные этим сервером. После возвращения этого метода, независимо от того, происходит это нормально или с исключением, сервер подключения не будет создавать новых клиентских подключений.

После остановки сервера подключения его нельзя запустить повторно.

Вызов этого метода, когда сервер подключения уже остановлен, не имеет эффекта. Вызов этого метода, когда сервер подключения еще не запущен, навсегда отключит объект сервера подключения.

Если при закрытии клиентского подключения возникает исключение, это исключение не выбрасывается из этого метода. JMXConnectionNotification испускается из этого MBean с идентификатором подключения, которое не удалось закрыть.

Закрытие сервера подключения — потенциально медленная операция. Например, если клиентский компьютер с открытым подключением потерпел сбой, операция закрытия может ожидать таймаута сетевого протокола. Вызывающие методы, которые не хотят блокироваться при закрытии, должны выполнять эту операцию в отдельном потоке.

Этот метод вызывает метод close на объекте сервера подключения RMIServerImpl.

Если RMIServerImpl был связан с каталогом JNDI методом start, он отвязывается от каталога этим методом.

Throws:
IOException - если сервер не может быть закрыт корректно или RMIServerImpl не может быть отвязан от каталога. При выбросе этого исключения сервер уже предпринял попытку закрыть все клиентские подключения (при необходимости), вызвать RMIServerImpl.close() и отвязать RMIServerImpl от каталога (при необходимости). Все клиентские подключения закрыты, за исключением тех, для которых при попытке закрытия возникли исключения.

isActive

public boolean isActive()
Описание скопировано из интерфейса: JMXConnectorServerMBean

Определяет, активен ли сервер подключения. Сервер подключения начинает быть активным, когда его метод start возвращается успешно и остается активным, пока не будет вызван метод stop или сервер подключения не потерпит неудачу.

Returns:
true, если сервер подключения активен.

getAddress

public JMXServiceURL getAddress()
Описание скопировано из интерфейса: JMXConnectorServerMBean

Адрес этого сервера подключения.

Возвращаемый адрес может не совпадать с исходным JMXServiceURL, предоставленным при создании сервера подключения, так как исходный адрес может не быть полным. Например, номер порта может динамически назначаться при запуске сервера подключения. Вместо этого возвращаемый адрес — фактический JMXServiceURL сервера JMXConnectorServer. Это адрес, который клиенты передают методу JMXConnectorFactory.connect(JMXServiceURL).

Обратите внимание, что возвращаемый адрес может быть null если сервер JMXConnectorServer еще не active.

Returns:
адрес этого сервера подключения или null, если он отсутствует.

getAttributes

public Map<String,?> getAttributes()
Описание скопировано из интерфейса: JMXConnectorServerMBean

Атрибуты для этого сервера подключения.

Returns:
чтение-только карта, содержащая атрибуты для этого сервера подключения. Атрибуты, значения которых не являются сериализуемыми, опускаются из этой карты. Если сериализуемых атрибутов нет, возвращаемая карта пуста.

© 1993, 2023, 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/21/docs/api/java.management.rmi/javax/management/remote/rmi/RMIConnectorServer.html

Spec-Zone.ru

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