Spec-Zone.ru › OpenJDK 17

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

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

После остановки сервера соединений его невозможно запустить снова.

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

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

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

Этот метод вызывает метод 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:
только для чтения map, содержащий атрибуты этого сервера соединений. Атрибуты, значения которых не сериализуемы, опускаются из этой карты. Если сериализуемых атрибутов нет, возвращаемая карта пуста.

© 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/RMIConnectorServer.html

Spec-Zone.ru

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