Spec-Zone.ru › OpenJDK 27

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

Сервер-коннектор API JMX, создающий соединения на основе 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 любым клиентом.

Поля, объявленные в классе JMXConnectorServer

AUTHENTICATOR
Модификатор и тип Поле Описание
static final String 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)
Возвращает клиентскую заглушку для этого сервера-коннектора.

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

connectionClosed, connectionFailed, connectionOpened, getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister, setMBeanServerForwarder
Модификатор и тип Метод Описание
protected void connectionClosed(String connectionId, String message, Object userData)
Вызывается подклассом при нормальном закрытии клиентского соединения.
protected void connectionFailed(String connectionId, String message, Object userData)
Вызывается подклассом при сбое клиентского соединения.
protected void connectionOpened(String connectionId, String message, Object userData)
Вызывается подклассом при открытии нового клиентского соединения.
String[] getConnectionIds()
Список идентификаторов текущих открытых соединений с этим сервером-коннектором.
MBeanServer getMBeanServer()
Возвращает сервер MBean, к которому подключён этот сервер-коннектор.
MBeanNotificationInfo[] getNotificationInfo()
Возвращает массив, указывающий уведомления, отправляемые этим MBean.
void postDeregister()
Позволяет MBean выполнить необходимые операции после отмены его регистрации на сервере MBean.
void postRegister(Boolean registrationDone)
Позволяет MBean выполнить необходимые операции после регистрации на сервере MBean или после сбоя регистрации.
void preDeregister()
Вызывается сервером MBean, когда регистрация этого сервера-коннектора на нём отменяется.
ObjectName preRegister(MBeanServer mbs, ObjectName name)
Вызывается сервером MBean, когда этот сервер-коннектор регистрируется на нём.
void setMBeanServerForwarder(MBeanServerForwarder mbsf)
Вставляет объект, перехватывающий запросы к серверу MBean, поступающие через этот сервер-коннектор.

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

addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
Модификатор и тип Метод Описание
void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Добавляет слушателя.
protected void handleNotification(NotificationListener listener, Notification notif, Object handback)
Этот метод вызывается методом sendNotification для каждого слушателя, чтобы отправить ему уведомление.
void removeNotificationListener(NotificationListener listener)
Удаляет слушателя из этого MBean.
void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Удаляет слушателя из этого MBean.
void sendNotification(Notification notification)
Отправляет уведомление.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект другому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API планируется удалить в одной из будущих версий.
Финализация объявлена устаревшей и планируется к удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

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(String)

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

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

SERIAL_FILTER_PATTERN

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

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

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

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

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

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

RMIConnectorServer

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

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

Параметры:
url — URL, определяющий способ создания сервера соединителя. Не может быть null.
environment — атрибуты, определяющие создание и сохранение объекта RMI. Может быть null, что эквивалентно пустой карте.
Выбрасывает:
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, что эквивалентно пустой карте.
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, что эквивалентно пустой карте.
rmiServerImpl — реализация интерфейса RMIServer, соответствующая типу протокола, указанному в url. Если этот параметр не равен null, тип протокола, указанный в url, не ограничивается и считается допустимым. В противном случае распознается только «rmi».
mbeanServer — MBean-сервер, к которому подключается новый сервер соединителя, или null, если он будет подключен путем регистрации в MBean-сервере в качестве MBean.
Выбрасывает:
IllegalArgumentException — если url равен null.
MalformedURLException — если url не соответствует синтаксису соединителя RMI или его протокол не распознается данной реализацией. Если rmiServerImpl равен null, распознается только «rmi».
IOException — если сервер соединителя по какой-либо причине не удается создать или если неизбежно возникнет ошибка при вызове его метода start.
См. также:
  • start()

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

toJMXConnector

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

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

Определен в:
toJMXConnector в интерфейсе JMXConnectorServerMBean
Переопределяет:
toJMXConnector в классе JMXConnectorServer
Параметры:
env — параметры клиентского соединения того же типа, что и передаваемые методу JMXConnector.connect(Map). Может быть null, что эквивалентно пустой карте.
Возвращает:
клиентскую заглушку, которую можно использовать для создания нового соединения с этим сервером соединителя.
Выбрасывает:
UnsupportedOperationException — если этот сервер соединителя не поддерживает создание клиентских заглушек.
IllegalStateException — если JMXConnectorServer не запущен (см. isActive()).
IOException — если из-за проблем со связью невозможно создать заглушку.

start

public void start() throws IOException

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

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

Для экспорта сервера соединителя через RMI сначала требуется объект подкласса RMIServerImpl:

  • Если конструктору был передан 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.

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

stop

public void stop() throws IOException

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

Остановленный сервер соединителя нельзя запустить повторно.

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

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

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

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

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

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

isActive

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

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

Возвращает:
true, если сервер соединителя активен.

getAddress

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

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

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

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

Возвращает:
адрес этого сервера соединителя или null, если у него нет адреса.

getAttributes

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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