Spec-Zone.ru › OpenJDK 24

Класс 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. Если атрибут не задан, то любой класс считается приемлемым.

С:
10
См. также:
  • 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 MBeans. Это потенциально может включать все конкретные JMX OpenTypes и классы, используемые в их сериализованной форме.

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

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

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

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

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

После того, как сервер соединений был остановлен, его нельзя запустить снова.

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

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

© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.management.rmi/javax/management/remote/rmi/RMIConnectorServer.html

Spec-Zone.ru

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