Spec-Zone.ru › OpenJDK 17

Интерфейс MBeanServer

Все суперинтерфейсы:
MBeanServerConnection
Все известные подинтерфейсы:
MBeanServerForwarder
public interface MBeanServer extends MBeanServerConnection

Это интерфейс для управления MBean на стороне агента. Он содержит методы, необходимые для создания, регистрации и удаления MBean, а также методы доступа к зарегистрированным MBean. Это ключевой компонент инфраструктуры JMX.

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

Каждый MBean, добавленный в сервер MBean, становится управляемым: его атрибуты и операции становятся удаленно доступными через подключенные к этому серверу MBean адаптеры/соединители. Объект Java не может быть зарегистрирован в сервере MBean, если он не является совместимым с JMX MBean.

При регистрации или снятии регистрации MBean в сервере MBean генерируется уведомление MBeanServerNotification. Для регистрации объекта в качестве слушателя MBeanServerNotifications следует вызвать метод сервера MBean addNotificationListener с ObjectName ObjectName делегата MBeanServerDelegate. Этот ObjectName является:
JMImplementation:type=MBeanServerDelegate.

Объект, полученный из методов createMBeanServer или newMBeanServer класса MBeanServerFactory, применяет проверки безопасности к своим методам следующим образом.

Во-первых, если менеджер безопасности отсутствует (System.getSecurityManager() равен null), то реализация этого интерфейса свободна от проведения проверок.

Предполагая, что менеджер безопасности существует или что реализация все равно выбирает проведение проверок, проверки выполняются, как подробно описано ниже. В дальнейшем, если не указано иное, className — это строка, возвращаемая методом MBeanInfo.getClassName() для целевого MBean.

Если проверка безопасности завершается неудачно, метод выбрасывает исключение SecurityException.

Для методов, которые могут выбросить исключение InstanceNotFoundException, это исключение выбрасывается для несуществующего MBean независимо от разрешений. Это связано с тем, что несуществующий MBean не имеет className.

  • Для метода invoke, разрешения вызывающего должны подразумевать MBeanPermission(className, operationName, name, "invoke").

  • Для метода getAttribute, разрешения вызывающего должны подразумевать MBeanPermission(className, attribute, name, "getAttribute").

  • Для метода getAttributes, разрешения вызывающего должны подразумевать MBeanPermission(className, null, name, "getAttribute"). Кроме того, для каждого атрибута a в AttributeList, если разрешения вызывающего не подразумевают MBeanPermission(className, a, name, "getAttribute"), сервер MBean будет вести себя так, как будто этот атрибут не был в предоставленном списке.

  • Для метода setAttribute, разрешения вызывающего должны подразумевать MBeanPermission(className, attrName, name, "setAttribute"), где attrName является attribute.getName().

  • Для метода setAttributes, разрешения вызывающего должны подразумевать MBeanPermission(className, null, name, "setAttribute"). Кроме того, для каждого атрибута a в AttributeList, если разрешения вызывающего не подразумевают MBeanPermission(className, a, name, "setAttribute"), сервер MBean будет вести себя так, как будто этот атрибут не был в предоставленном списке.

  • Для методов addNotificationListener, разрешения вызывающего должны подразумевать MBeanPermission(className, null, name, "addNotificationListener").

  • Для методов removeNotificationListener, разрешения вызывающего должны подразумевать MBeanPermission(className, null, name, "removeNotificationListener").

  • Для метода getMBeanInfo, разрешения вызывающего должны подразумевать MBeanPermission(className, null, name, "getMBeanInfo").

  • Для метода getObjectInstance, разрешения вызывающего должны подразумевать MBeanPermission(className, null, name, "getObjectInstance").

  • Для метода isInstanceOf, разрешения вызывающего должны подразумевать MBeanPermission(className, null, name, "isInstanceOf").

  • Для метода queryMBeans, разрешения вызывающего должны подразумевать MBeanPermission(null, null, null, "queryMBeans"). Кроме того, для каждого объекта MBean n, который соответствует name, если разрешения вызывающего не подразумевают MBeanPermission(className, null, n, "queryMBeans"), сервер MBean будет вести себя так, как будто этот MBean не существовал.

    Некоторые элементы запроса выполняют операции на сервере MBean. Если у вызывающего отсутствуют необходимые разрешения для конкретного MBean, этот MBean не будет включён в результат запроса. Стандартные элементы запроса, которые затронуты, это Query.attr(String), Query.attr(String,String) и Query.classattr().

  • Для метода queryNames, проверки аналогичны проверкам для queryMBeans, за исключением того, что "queryNames" используется вместо "queryMBeans" в объектах MBeanPermission. Обратите внимание, что разрешение "queryMBeans" подразумевает соответствующее разрешение "queryNames".

  • Для метода getDomains, разрешения вызывающего должны подразумевать MBeanPermission(null, null, null, "getDomains"). Кроме того, для каждого домена d в возвращаемом массиве, если разрешения вызывающего не подразумевают MBeanPermission(null, null, new ObjectName("d:x=x"), "getDomains"), домен исключается из массива. Здесь, x=x - любая пара ключ=значение, необходимая для удовлетворения конструктора ObjectName, но в остальном не имеющая отношения.

  • Для метода getClassLoader, разрешения вызывающего должны подразумевать MBeanPermission(className, null, loaderName, "getClassLoader").

  • Для метода getClassLoaderFor, разрешения вызывающего должны подразумевать MBeanPermission(className, null, mbeanName, "getClassLoaderFor").

  • Для метода getClassLoaderRepository, разрешения вызывающего должны подразумевать MBeanPermission(null, null, null, "getClassLoaderRepository").

  • Для устаревших deserialize методов, требуемые разрешения такие же, как для методов, которые их заменяют.

  • Для методов instantiate, разрешения вызывающего должны подразумевать MBeanPermission(className, null, null, "instantiate"), где className - имя класса, который должен быть создан.

  • Для метода registerMBean, разрешения вызывающего должны подразумевать MBeanPermission(className, null, name, "registerMBean").

    Если проверка MBeanPermission пройдена, класс MBean проверяется, проверяется ли его ProtectionDomain подразумевает MBeanTrustPermission("register").

    Наконец, если аргумент name равен null, выполняется дополнительная проверка MBeanPermission с использованием значения ObjectName, возвращаемого методом MBeanRegistration.preRegister.

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

  • Для метода unregisterMBean, разрешения вызывающего должны подразумевать MBeanPermission(className, null, name, "unregisterMBean").

Since:
1.5

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

Модификатор и тип Метод Описание
void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback)
Добавляет слушателя к зарегистрированному MBean.
void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback)
Добавляет слушателя к зарегистрированному MBean.
ObjectInstance createMBean(String className, ObjectName name)
Создает и регистрирует MBean в сервере MBean.
ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature)
Создает и регистрирует MBean в сервере MBean.
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName)
Создает и регистрирует MBean в сервере MBean.
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature)
Создает и регистрирует MBean в сервере MBean.
default ObjectInputStream deserialize(String className, byte[] data)
Устарело.
Используйте getClassLoaderRepository() для получения хранилища загрузчиков классов и используйте его для десериализации.
default ObjectInputStream deserialize(String className, ObjectName loaderName, byte[] data)
Устарело.
Используйте getClassLoader для получения загрузчика классов для десериализации.
default ObjectInputStream deserialize(ObjectName name, byte[] data)
Устарело.
Используйте getClassLoaderFor для получения соответствующего загрузчика классов для десериализации.
Object getAttribute(ObjectName name, String attribute)
Получает значение определенного атрибута заданного MBean.
AttributeList getAttributes(ObjectName name, String[] attributes)
Получает значения нескольких атрибутов заданного MBean.
ClassLoader getClassLoader(ObjectName loaderName)
Возвращает именованный ClassLoader.
ClassLoader getClassLoaderFor(ObjectName mbeanName)
Возвращает ClassLoader, который использовался для загрузки класса указанного MBean.
ClassLoaderRepository getClassLoaderRepository()
Возвращает ClassLoaderRepository для данного сервера MBean.
String getDefaultDomain()
Возвращает по умолчанию используемый домен для именования MBean.
String[] getDomains()
Возвращает список доменов, в которых в данный момент зарегистрирован какой-либо MBean.
Integer getMBeanCount()
Возвращает количество зарегистрированных MBean в сервере MBean.
MBeanInfo getMBeanInfo(ObjectName name)
Этот метод обнаруживает атрибуты и операции, которые MBean предоставляет для управления.
ObjectInstance getObjectInstance(ObjectName name)
Получает ObjectInstance для данного MBean, зарегистрированного в сервере MBean.
Object instantiate(String className)
Создает объект, используя список всех загрузчиков классов, зарегистрированных в хранилище загрузчиков классов сервера MBean Class Loader Repository.
Object instantiate(String className, Object[] params, String[] signature)
Создает объект, используя список всех загрузчиков классов, зарегистрированных в сервере MBean Class Loader Repository.
Object instantiate(String className, ObjectName loaderName)
Создает объект, используя указанный загрузчик классов по его ObjectName.
Object instantiate(String className, ObjectName loaderName, Object[] params, String[] signature)
Создает объект.
Object invoke(ObjectName name, String operationName, Object[] params, String[] signature)
Вызывает операцию на MBean.
boolean isInstanceOf(ObjectName name, String className)
Возвращает true, если указанный MBean является экземпляром указанного класса, в противном случае false.
boolean isRegistered(ObjectName name)
Проверяет, зарегистрирован ли MBean, идентифицированный по имени объекта, в сервере MBean.
Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
Получает MBean, управляемые сервером MBean.
Set<ObjectName> queryNames(ObjectName name, QueryExp query)
Получает имена MBean, управляемых сервером MBean.
ObjectInstance registerMBean(Object object, ObjectName name)
Регистрирует уже существующий объект как MBean в сервере MBean.
void removeNotificationListener(ObjectName name, NotificationListener listener)
Удаляет слушателя из зарегистрированного MBean.
void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback)
Удаляет слушателя из зарегистрированного MBean.
void removeNotificationListener(ObjectName name, ObjectName listener)
Удаляет слушателя из зарегистрированного MBean.
void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback)
Удаляет слушателя из зарегистрированного MBean.
void setAttribute(ObjectName name, Attribute attribute)
Устанавливает значение определенного атрибута заданного MBean.
AttributeList setAttributes(ObjectName name, AttributeList attributes)
Устанавливает значения нескольких атрибутов заданного MBean.
void unregisterMBean(ObjectName name)
Дерегистрирует MBean из сервера MBean.

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

createMBean

ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException

Инициализирует и регистрирует MBean в сервере MBean. Сервер MBean будет использовать свой Default Loader Repository для загрузки класса MBean. MBean ассоциируется с именем объекта. Если указанное имя объекта равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.

Этот метод эквивалентен методу createMBean(className, name, (Object[]) null, (String[]) null).

Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.

Определено в:
createMBean в интерфейсе MBeanServerConnection
Параметры:
className - Имя класса MBean, который необходимо создать.
name - Имя объекта MBean. Может быть null.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса недавно созданного MBean. Если содержимое ObjectName равно n, то содержимое имени Java-класса равно getMBeanInfo(n).getClassName().
Исключения:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: имя переданного класса равно null, имя ObjectName параметра содержит шаблон или имя ObjectName для MBean не указано.
RuntimeMBeanException - Если конструктор MBean или его методы preRegister или postRegister выбросили исключение RuntimeException. Если метод postRegister (интерфейс MBeanRegistration) MBean выбросил исключение RuntimeException, метод createMBean выбросит исключение RuntimeMBeanException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет зарегистрирован, даже если метод createMBean выбросил исключение. Обратите внимание, что RuntimeMBeanException также может быть выброшено preRegister, в этом случае MBean не будет зарегистрирован.
RuntimeErrorException - Если метод postRegister (интерфейс MBeanRegistration) MBean выбросил исключение Error, метод createMBean выбросит исключение RuntimeErrorException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет зарегистрирован, даже если метод createMBean выбросил исключение. Обратите внимание, что RuntimeErrorException также может быть выброшено preRegister, в этом случае MBean не будет зарегистрирован.
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, возникшие при попытке вызова конструктора MBean.
InstanceAlreadyExistsException - MBean уже находится под управлением сервера MBean.
MBeanRegistrationException - Метод preRegister (интерфейс MBeanRegistration) MBean выбросил исключение. MBean не будет зарегистрирован.
MBeanException - Конструктор MBean выбросил исключение
NotCompliantMBeanException - Этот класс не является совместимым с JMX MBean
См. также:
  • MBeanRegistration

createMBean

ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException

Инициализирует и регистрирует MBean в сервере MBean. Используемый загрузчик классов определяется по имени объекта. MBean ассоциируется с именем объекта. Если имя объекта загрузчика равно null, используется загрузчик классов, который загрузил сервер MBean. Если имя объекта MBean равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.

Этот метод эквивалентен методу createMBean(className, name, loaderName, (Object[]) null, (String[]) null).

Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.

Определено в:
createMBean в интерфейсе MBeanServerConnection
Параметры:
className - Имя класса MBean, который необходимо создать.
name - Имя объекта MBean. Может быть null.
loaderName - Имя объекта загрузчика классов, который необходимо использовать.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса недавно созданного MBean. Если содержимое ObjectName равно n, то содержимое имени Java-класса равно getMBeanInfo(n).getClassName().
Исключения:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: имя переданного класса равно null, имя ObjectName параметра содержит шаблон или имя ObjectName для MBean не указано.
RuntimeMBeanException - Если конструктор MBean или его методы preRegister или postRegister выбросили исключение RuntimeException. Если метод postRegister (интерфейс MBeanRegistration) MBean выбросил исключение RuntimeException, метод createMBean выбросит исключение RuntimeMBeanException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет зарегистрирован, даже если метод createMBean выбросил исключение. Обратите внимание, что RuntimeMBeanException также может быть выброшено preRegister, в этом случае MBean не будет зарегистрирован.
RuntimeErrorException - Если метод postRegister (интерфейс MBeanRegistration) MBean выбросил исключение Error, метод createMBean выбросит исключение RuntimeErrorException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет зарегистрирован, даже если метод createMBean выбросил исключение. Обратите внимание, что RuntimeErrorException также может быть выброшено preRegister, в этом случае MBean не будет зарегистрирован.
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, возникшие при попытке вызова конструктора MBean.
InstanceAlreadyExistsException - MBean уже находится под управлением сервера MBean.
MBeanRegistrationException - Метод preRegister (интерфейс MBeanRegistration) MBean выбросил исключение. MBean не будет зарегистрирован.
MBeanException - Конструктор MBean выбросил исключение
NotCompliantMBeanException - Этот класс не является совместимым с JMX MBean
InstanceNotFoundException - Указанный загрузчик классов не зарегистрирован в сервере MBean.
См. также:
  • MBeanRegistration

createMBean

ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
Инициализирует и регистрирует MBean в сервере MBean. Сервер MBean будет использовать свой Default Loader Repository для загрузки класса MBean. MBean ассоциируется с именем объекта. Если указанное имя объекта равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.

Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.

Определено в:
createMBean в интерфейсе MBeanServerConnection
Параметры:
className - Имя класса MBean, который необходимо инициализировать.
name - Имя объекта MBean. Может быть null.
params - Массив, содержащий параметры вызываемого конструктора.
signature - Массив, содержащий сигнатуру вызываемого конструктора.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса только что инициализированного MBean. Если содержащийся ObjectName равен n, содержащееся имя Java-класса равно getMBeanInfo(n).getClassName().
Исключения:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в параметре className равно null, переданное в параметре ObjectName содержит шаблон или для MBean не указано ни одного ObjectName.
RuntimeMBeanException - Если конструктор MBean или метод preRegister или postRegister бросил исключение RuntimeException. Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение RuntimeException, метод createMBean бросит исключение RuntimeMBeanException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeMBeanException также может быть брошено preRegister, в таком случае MBean не будет зарегистрирован.
RuntimeErrorException - Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение Error, метод createMBean бросит исключение RuntimeErrorException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeErrorException также может быть брошено preRegister, в таком случае MBean не будет зарегистрирован.
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, произошедшие при попытке вызвать конструктор MBean.
InstanceAlreadyExistsException - MBean уже находится под управлением сервера MBean.
MBeanRegistrationException - Метод preRegister (интерфейс MBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован.
MBeanException - Конструктор MBean бросил исключение
NotCompliantMBeanException - Этот класс не является совместимым с JMX MBean
См. также:
  • MBeanRegistration

createMBean

ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException

Инициализирует и регистрирует MBean в сервере MBean. Класс загрузчик определяется по имени объекта. MBean ассоциируется с именем объекта. Если имя объекта загрузчика не указано, используется ClassLoader, который загрузил сервер MBean. Если переданное имя объекта MBean равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.

Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.

Определено в:
createMBean в интерфейсе MBeanServerConnection
Параметры:
className - Имя класса MBean, который необходимо инициализировать.
name - Имя объекта MBean. Может быть null.
loaderName - Имя объекта загрузчика класса.
params - Массив, содержащий параметры вызываемого конструктора.
signature - Массив, содержащий сигнатуру вызываемого конструктора.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса только что инициализированного MBean. Если содержащийся ObjectName равен n, содержащееся имя Java-класса равно getMBeanInfo(n).getClassName().
Исключения:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в параметре className равно null, переданное в параметре ObjectName содержит шаблон или для MBean не указано ни одного ObjectName.
RuntimeMBeanException - Конструктор MBean или его методы preRegister или postRegister бросили исключение RuntimeException. Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение RuntimeException, метод createMBean бросит исключение RuntimeMBeanException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeMBeanException также может быть брошено preRegister, в таком случае MBean не будет зарегистрирован.
RuntimeErrorException - Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение Error, метод createMBean бросит исключение RuntimeErrorException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод createMBean бросил исключение. Обратите внимание, что RuntimeErrorException также может быть брошено preRegister, в таком случае MBean не будет зарегистрирован.
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception, произошедшие при попытке вызвать конструктор MBean.
InstanceAlreadyExistsException - MBean уже находится под управлением сервера MBean.
MBeanRegistrationException - Метод preRegister (интерфейс MBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован.
MBeanException - Конструктор MBean бросил исключение
NotCompliantMBeanException - Этот класс не является совместимым с JMX MBean
InstanceNotFoundException - Указанный загрузчик классов не зарегистрирован в сервере MBean.
См. также:
  • MBeanRegistration

registerMBean

ObjectInstance registerMBean(Object object, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException

Регистрирует существующий объект в качестве MBean на сервере MBean. Если указанное имя объекта равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.

Если этот метод успешно регистрирует MBean, отправляется уведомление, как описано выше.

Параметры:
object - MBean, который необходимо зарегистрировать.
name - Имя объекта MBean. Может быть null.
Возвращает:
Объект ObjectInstance, содержащий ObjectName и имя Java-класса только что зарегистрированного MBean. Если содержащийся ObjectName равен n, содержащееся имя Java-класса равно getMBeanInfo(n).getClassName().
Исключения:
InstanceAlreadyExistsException - MBean уже находится под управлением сервера MBean.
MBeanRegistrationException - Метод preRegister (интерфейс MBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован.
RuntimeMBeanException - Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение RuntimeException, метод registerMBean бросит исключение RuntimeMBeanException, хотя регистрация MBean прошла успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод registerMBean бросил исключение. Обратите внимание, что RuntimeMBeanException также может быть брошено preRegister, в таком случае MBean не будет зарегистрирован.
RuntimeErrorException - Если метод postRegister (интерфейс MBeanRegistration) MBean бросил исключение Error, метод registerMBean бросит исключение RuntimeErrorException, хотя регистрация MBean прошла успешно. В таком случае MBean будет фактически зарегистрирован, даже если метод registerMBean бросил исключение. Обратите внимание, что RuntimeErrorException также может быть брошено preRegister, в таком случае MBean не будет зарегистрирован.
NotCompliantMBeanException - Этот объект не является совместимым с JMX MBean
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданный в параметре объект равен null или не указано имя объекта.
См. также:
  • MBeanRegistration

unregisterMBean

void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException
Удаляет MBean из сервера MBean. MBean идентифицируется по своему имени объекта. После вызова метода MBean больше недоступен по имени объекта.

Если этот метод успешно удаляет MBean, отправляется уведомление, как описано выше.

Specified by:
unregisterMBean в интерфейсе MBeanServerConnection
Parameters:
name - Имя объекта удаляемого MBean.
Throws:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null или MBean, который вы пытаетесь удалить, является MBean MBeanServerDelegate.
RuntimeMBeanException - Если метод postDeregister (интерфейс MBeanRegistration) MBean выбрасывает RuntimeException, метод unregisterMBean будет выбрасывать RuntimeMBeanException, хотя удаление MBean прошло успешно. В таком случае MBean будет фактически удален, несмотря на то, что метод unregisterMBean выбросил исключение. Обратите внимание, что RuntimeMBeanException также может быть выброшен preDeregister, в этом случае MBean останется зарегистрированным.
RuntimeErrorException - Если метод postDeregister (интерфейс MBeanRegistration) MBean выбрасывает Error, метод unregisterMBean будет выбрасывать RuntimeErrorException, хотя удаление MBean прошло успешно. В таком случае MBean будет фактически удален, несмотря на то, что метод unregisterMBean выбросил исключение. Обратите внимание, что RuntimeMBeanException также может быть выброшен preDeregister, в этом случае MBean останется зарегистрированным.
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
MBeanRegistrationException - Метод preDeregister (интерфейс MBeanRegistration) MBean выбросил исключение.
See Also:
  • MBeanRegistration

getObjectInstance

ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException
Описание скопировано из интерфейса: MBeanServerConnection
Получает ObjectInstance для заданного MBean, зарегистрированного на сервере MBean.
Specified by:
getObjectInstance в интерфейсе MBeanServerConnection
Parameters:
name - Имя объекта MBean.
Returns:
ObjectInstance для MBean, указанного name. Содержимое ObjectName и имя класса содержимого - getMBeanInfo(name).getClassName().
Throws:
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.

queryMBeans

Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
Получает MBeans, управляемые сервером MBean. Этот метод позволяет получить следующее: все MBeans, набор MBeans, указанных с помощью сопоставления шаблонов по ObjectName и/или выражению запроса, определённый MBean. Когда имя объекта равно null или не указаны домен и ключевые свойства, выбираются все объекты (и фильтруются, если указан запрос). Возвращает набор ObjectInstance объектов (содержащих ObjectName и имя класса Java) для выбранных MBeans.
Specified by:
queryMBeans в интерфейсе MBeanServerConnection
Parameters:
name - Шаблон имени объекта, определяющий MBeans для извлечения. Если null или не указаны домен и ключевые свойства, будут извлечены все зарегистрированные MBeans.
query - Выражение запроса, применяемое для выбора MBeans. Если null, для выбора MBeans не будет применено никакого выражения запроса.
Returns:
Набор ObjectInstance объектов для выбранных MBeans. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
Throws:
RuntimeOperationsException

queryNames

Set<ObjectName> queryNames(ObjectName name, QueryExp query)
Получает имена MBeans, управляемых сервером MBean. Этот метод позволяет получить следующее: имена всех MBeans, имена набора MBeans, указанных с помощью сопоставления шаблонов по ObjectName и/или выражению запроса, конкретное имя MBean (эквивалентно проверке, зарегистрирован ли MBean). Когда имя объекта равно null или не указаны домен и ключевые свойства, выбираются все объекты (и фильтруются, если указан запрос). Возвращает набор ObjectNames для выбранных MBeans.
Specified by:
queryNames в интерфейсе MBeanServerConnection
Parameters:
name - Шаблон имени объекта, определяющий имена MBeans для извлечения. Если null или не указаны домен и ключевые свойства, будут извлечены имена всех зарегистрированных MBeans.
query - Выражение запроса, применяемое для выбора MBeans. Если null, для выбора MBeans не будет применено никакого выражения запроса.
Returns:
Набор ObjectNames для выбранных MBeans. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
Throws:
RuntimeOperationsException

isRegistered

boolean isRegistered(ObjectName name)
Описание скопировано из интерфейса: MBeanServerConnection
Проверяет, зарегистрирован ли MBean, идентифицируемый по имени объекта, на сервере MBean.
Specified by:
isRegistered в интерфейсе MBeanServerConnection
Parameters:
name - Имя объекта MBean для проверки.
Returns:
True, если MBean уже зарегистрирован на сервере MBean, false в противном случае.
Throws:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null.

getMBeanCount

Integer getMBeanCount()
Возвращает количество зарегистрированных MBeans на сервере MBean.
Specified by:
getMBeanCount в интерфейсе MBeanServerConnection
Returns:
количество зарегистрированных MBeans, заключенное в Integer. Если разрешения вызывающего метода ограничены, это число может быть больше, чем количество MBeans, к которым у вызывающего метода есть доступ.

getAttribute

Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
Описание скопировано из интерфейса: MBeanServerConnection
Получает значение определенного атрибута именованного MBean. MBean идентифицируется по имени объекта.
Specified by:
getAttribute в интерфейсе MBeanServerConnection
Parameters:
name - Имя объекта MBean, из которого извлекается атрибут.
attribute - Строка, определяющая имя атрибута для извлечения.
Returns:
Значение извлеченного атрибута.
Throws:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибут в параметре равен null.
MBeanException - Оборачивает исключение, выброшенное getter MBean.
AttributeNotFoundException - Указанный атрибут недоступен в MBean.
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
ReflectionException - Оборачивает java.lang.Exception выброшенное при попытке вызова setter.
See Also:
  • MBeanServerConnection.setAttribute(javax.management.ObjectName, javax.management.Attribute)

getAttributes

AttributeList getAttributes(ObjectName name, String[] attributes) throws InstanceNotFoundException, ReflectionException
Описание скопировано из интерфейса: MBeanServerConnection

Извлекает значения нескольких атрибутов именованного MBean. MBean идентифицируется по имени объекта.

Если один или несколько атрибутов не могут быть извлечены по какой-либо причине, они будут исключены из возвращаемого AttributeList. Вызывающий метод должен проверить, что список имеет такой же размер, как и массив attributes. Чтобы узнать, какая проблема помешала извлечению данного атрибута, вызовите getAttribute для этого атрибута.

Вот пример вызова этого метода и проверки успешного извлечения всех запрошенных атрибутов:

 String[] attrNames = ...;
 AttributeList list = mbeanServerConnection.getAttributes(objectName, attrNames);
 if (list.size() == attrNames.length)
     System.out.println("All attributes were retrieved successfully");
 else {
     List<String> missing = new ArrayList<String>(Arrays.asList(attrNames));
     for (Attribute a : list.asList())
         missing.remove(a.getName());
     System.out.println("Did not retrieve: " + missing);
 }
 
Specified by:
getAttributes в интерфейсе MBeanServerConnection
Parameters:
name - Имя объекта MBean, из которого извлекаются атрибуты.
attributes - Список атрибутов, которые нужно извлечь.
Returns:
Список извлеченных атрибутов.
Throws:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null.
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
ReflectionException - Произошла ошибка при попытке вызвать метод getAttributes динамического MBean.
See Also:
  • MBeanServerConnection.setAttributes(javax.management.ObjectName, javax.management.AttributeList)

setAttribute

void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
Описание скопировано из интерфейса: MBeanServerConnection
Устанавливает значение определённого атрибута именованного MBean. MBean идентифицируется по имени объекта.
Указано в:
setAttribute в интерфейсе MBeanServerConnection
Параметры:
name - Имя MBean, в котором должен быть изменён атрибут.
attribute - Идентификатор атрибута, который необходимо установить, и значение, на которое необходимо установить атрибут.
Исключения:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null.
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
AttributeNotFoundException - Указанный атрибут недоступен в MBean.
InvalidAttributeValueException - Указанное значение для атрибута недействительно.
MBeanException - Оборачивает исключение, сгенерированное методом установления значения атрибута MBean.
ReflectionException - Оборачивает java.lang.Exception исключение, возникшее при попытке вызова метода установления значения.
См. также:
  • MBeanServerConnection.getAttribute(javax.management.ObjectName, java.lang.String)

setAttributes

AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException
Описание скопировано из интерфейса: MBeanServerConnection

Устанавливает значения нескольких атрибутов именованного MBean. MBean идентифицируется по имени объекта.

Если один или несколько атрибутов по какой-либо причине не могут быть установлены, они будут пропущены в возвращаемом AttributeList. Вызывающий метод должен проверить, что входной AttributeList имеет тот же размер, что и выходной. Чтобы определить, что помешало получению определенного атрибута, обычно можно вызвать setAttribute для этого атрибута, хотя это не гарантируется. (Например, значения двух атрибутов могут быть отклонены из-за несовместимости друг с другом. Установка одного из них может быть разрешена.)

Вот пример вызова этого метода и проверки того, что он успешно установил все запрошенные атрибуты:

 AttributeList inputAttrs = ...;
 AttributeList outputAttrs = mbeanServerConnection.setAttributes(objectName, inputAttrs);
 if (inputAttrs.size() == outputAttrs.size())
     System.out.println("All attributes were set successfully");
 else {
     List<String> missing = new ArrayList<String>();
     for (Attribute a : inputAttrs.asList())
         missing.add(a.getName());
     for (Attribute a : outputAttrs.asList())
         missing.remove(a.getName());
     System.out.println("Did not set: " + missing);
 }
 
Указано в:
setAttributes в интерфейсе MBeanServerConnection
Параметры:
name - Имя объекта MBean, в котором должны быть установлены атрибуты.
attributes - Список атрибутов: идентификация атрибутов, которые необходимо установить, и значения, на которые необходимо установить эти атрибуты.
Возвращает:
Список атрибутов, которые были установлены, со своими новыми значениями.
Исключения:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: имя объекта в параметре равно null или список атрибутов в параметре равен null.
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
ReflectionException - Во время попытки вызова метода getAttributes динамического MBean произошла ошибка.
См. также:
  • MBeanServerConnection.getAttributes(javax.management.ObjectName, java.lang.String[])

invoke

Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException
Описание скопировано из интерфейса: MBeanServerConnection

Вызывает операцию на MBean.

Из-за необходимости signature для различения потенциально перегруженных операций, намного проще вызывать операции через прокси MBean, где это возможно. Например, предположим, что у вас есть интерфейс Standard MBean, похожий на этот:

 public interface FooMBean {
     public int countMatches(String[] patterns, boolean ignoreCase);
 }
 

Операция countMatches может быть вызвана следующим образом:

 String[] myPatterns = ...;
 int count = (Integer) mbeanServerConnection.invoke(
         objectName,
         "countMatches",
         new Object[] {myPatterns, true},
         new String[] {String[].class.getName(), boolean.class.getName()});
 

В качестве альтернативы, она может быть вызвана через прокси следующим образом:

 String[] myPatterns = ...;
 FooMBean fooProxy = JMX.newMBeanProxy(
         mbeanServerConnection, objectName, FooMBean.class);
 int count = fooProxy.countMatches(myPatterns, true);
 
Указано в:
invoke в интерфейсе MBeanServerConnection
Параметры:
name - Имя объекта MBean, на котором должен быть вызван метод.
operationName - Название операции, которую необходимо вызвать.
params - Массив, содержащий параметры, которые необходимо задать при вызове операции
signature - Массив, содержащий сигнатуру операции, массив имён классов в формате, возвращаемом Class.getName(). Объекты классов будут загружены с помощью того же загрузчика классов, что и тот, который используется для загрузки MBean, на котором была вызвана операция.
Возвращает:
Объект, возвращаемый операцией, представляющий результат вызова операции на указанном MBean.
Исключения:
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
MBeanException - Оборачивает исключение, сгенерированное методом вызываемого MBean.
ReflectionException - Оборачивает java.lang.Exception исключение, возникшее при попытке вызова метода.

getDefaultDomain

String getDefaultDomain()
Описание скопировано из интерфейса: MBeanServerConnection
Возвращает имя домена по умолчанию, используемого для именования MBean. Имя домена по умолчанию используется в качестве части имени объекта MBean, если пользователь не указал домен.
Указано в:
getDefaultDomain в интерфейсе MBeanServerConnection
Возвращает:
имя домена по умолчанию.

getDomains

String[] getDomains()
Описание скопировано из интерфейса: MBeanServerConnection

Возвращает список доменов, в которых в настоящее время зарегистрирован какой-либо MBean. Строка присутствует в возвращаемом массиве тогда и только тогда, когда зарегистрирован по крайней мере один MBean с именем объекта, чьё getDomain() равно этой строке. Порядок строк в возвращаемом массиве не определён.

Указано в:
getDomains в интерфейсе MBeanServerConnection
Возвращает:
список доменов.

addNotificationListener

void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException

Добавляет слушателя к зарегистрированному MBean. Уведомления, испускаемые MBean, будут перенаправлены слушателю.

Если источник уведомления является ссылкой на объект MBean, сервер MBean заменит его именем объекта этого MBean. В противном случае источник остаётся неизменным.
Указано в:
addNotificationListener в интерфейсе MBeanServerConnection
Параметры:
name - Имя MBean, к которому должен быть добавлен слушатель.
listener - Объект слушателя, который будет обрабатывать уведомления, испускаемые зарегистрированным MBean.
filter - Объект фильтра. Если filter равен null, никакое фильтрация не будет выполнена перед обработкой уведомлений.
handback - Контекст, который будет отправлен слушателю при испускании уведомления.
Исключения:
InstanceNotFoundException - Указанное имя MBean не соответствует ни одному из зарегистрированных MBean.
См. также:
  • MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener)
  • MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

addNotificationListener

void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException

Добавляет слушателя к зарегистрированному MBean.

Уведомление, испускаемое MBean, будет перенаправлено сервером MBean слушателю. Если источник уведомления — ссылка на объект MBean, сервер MBean заменит его именем объекта этого MBean. В противном случае источник остаётся неизменным.

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

Указано в:
addNotificationListener в интерфейсе MBeanServerConnection
Параметры:
name - Имя MBean, к которому должен быть добавлен слушатель.
listener - Имя объекта слушателя, который будет обрабатывать уведомления, испускаемые зарегистрированным MBean.
filter - Объект фильтра. Если filter равен null, никакое фильтрация не будет выполнена перед обработкой уведомлений.
handback - Контекст, который будет отправлен слушателю при испускании уведомления.
Исключения:
RuntimeOperationsException - Оборачивает IllegalArgumentException. MBean, именованный listener, существует, но не реализует интерфейс NotificationListener.
InstanceNotFoundException - Имя MBean слушателя уведомлений или передатчика уведомлений не соответствует ни одному из зарегистрированных MBean.
См. также:
  • MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName)
  • MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException
Описание, скопированное из интерфейса: MBeanServerConnection
Удаляет слушателя из зарегистрированного MBean.

Если слушатель зарегистрирован более одного раза, возможно, с различными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.

Определено в:
removeNotificationListener в интерфейсе MBeanServerConnection
Параметры:
name - Имя MBean, из которого следует удалить слушателя.
listener - Имя объекта слушателя, который нужно удалить.
Исключения:
InstanceNotFoundException - Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean.
См. также:
  • MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
Описание, скопированное из интерфейса: MBeanServerConnection

Удаляет слушателя из зарегистрированного MBean.

MBean должен иметь слушателя, который точно соответствует заданным параметрам listener, filter, и handback. Если таких слушателей несколько, удаляется только один.

Параметры filter и handback могут быть null, если и только если они являются null в удаляемом слушателе.

Определено в:
removeNotificationListener в интерфейсе MBeanServerConnection
Параметры:
name - Имя MBean, из которого следует удалить слушателя.
listener - Имя объекта слушателя, который нужно удалить.
filter - Фильтр, указанный при добавлении слушателя.
handback - Обратный вызов, указанный при добавлении слушателя.
Исключения:
InstanceNotFoundException - Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и обратным вызовом.
См. также:
  • MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException
Описание, скопированное из интерфейса: MBeanServerConnection

Удаляет слушателя из зарегистрированного MBean.

Если слушатель зарегистрирован более одного раза, возможно, с различными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.

Определено в:
removeNotificationListener в интерфейсе MBeanServerConnection
Параметры:
name - Имя MBean, из которого следует удалить слушателя.
listener - Слушатель, который нужно удалить.
Исключения:
InstanceNotFoundException - Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean.
См. также:
  • MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
Описание, скопированное из интерфейса: MBeanServerConnection

Удаляет слушателя из зарегистрированного MBean.

MBean должен иметь слушателя, который точно соответствует заданным параметрам listener, filter, и handback. Если таких слушателей несколько, удаляется только один.

Параметры filter и handback могут быть null, если и только если они являются null в удаляемом слушателе.

Определено в:
removeNotificationListener в интерфейсе MBeanServerConnection
Параметры:
name - Имя MBean, из которого следует удалить слушателя.
listener - Слушатель, который нужно удалить.
filter - Фильтр, указанный при добавлении слушателя.
handback - Обратный вызов, указанный при добавлении слушателя.
Исключения:
InstanceNotFoundException - Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и обратным вызовом.
См. также:
  • MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

getMBeanInfo

MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException
Описание, скопированное из интерфейса: MBeanServerConnection
Этот метод обнаруживает атрибуты и операции, которые MBean предоставляет для управления.
Определено в:
getMBeanInfo в интерфейсе MBeanServerConnection
Параметры:
name - Имя анализируемого MBean
Возвращает:
Экземпляр MBeanInfo, позволяющий получить все атрибуты и операции данного MBean.
Исключения:
InstanceNotFoundException - Указанный MBean не найден.
IntrospectionException - Произошло исключение во время интроспекции.
ReflectionException - Произошло исключение при попытке вызвать getMBeanInfo динамического MBean.

isInstanceOf

boolean isInstanceOf(ObjectName name, String className) throws InstanceNotFoundException
Описание, скопированное из интерфейса: MBeanServerConnection

Возвращает true, если указанный MBean является экземпляром указанного класса, иначе false.

Если name не указывает на MBean, этот метод выбрасывает InstanceNotFoundException.

В противном случае, пусть
X — MBean, имя которого указано в name,
L — загрузчик классов X,
N — имя класса в MBeanInfo X.

Если N равно className, результат — true.

В противном случае, если L успешно загружает className и X является экземпляром этого класса, результат — true.

В противном случае, если L успешно загружает N и className, и второй класс наследуется от первого, результат — true.

В противном случае, результат — false.

Определено в:
isInstanceOf в интерфейсе MBeanServerConnection
Параметры:
name - ObjectName MBean.
className - Имя класса.
Возвращает:
true, если указанный MBean является экземпляром указанного класса согласно приведенным правилам, иначе false.
Исключения:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
См. также:
  • Class.isInstance(java.lang.Object)

instantiate

Object instantiate(String className) throws ReflectionException, MBeanException

Инициализирует объект, используя список всех загрузчиков классов, зарегистрированных в Class Loader Repository сервера MBean. Класс объекта должен иметь публичный конструктор. Этот метод возвращает ссылку на вновь созданный объект. Новый объект не регистрируется в сервере MBean.

Этот метод эквивалентен instantiate(className, (Object[]) null, (String[]) null).

Параметры:
className - Имя класса объекта, который нужно инициализировать.
Возвращает:
Новый инициализированный объект.
Исключения:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception произошедшее при попытке вызвать конструктор объекта.
MBeanException - Конструктор объекта выбросил исключение
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное в качестве параметра имя класса null.

instantiate

Object instantiate(String className, ObjectName loaderName) throws ReflectionException, MBeanException, InstanceNotFoundException

Инициализирует объект с использованием загрузчика классов, указанного его ObjectName. Если имя загрузчика null, используется загрузчик классов, загрузивший сервер MBean. Класс объекта должен иметь публичный конструктор. Этот метод возвращает ссылку на вновь созданный объект. Созданный объект не регистрируется в сервере MBean.

Этот метод эквивалентен instantiate(className, loaderName, (Object[]) null, (String[]) null).

Parameters:
className - Имя класса MBean, подлежащего инициализации.
loaderName - Имя объекта загрузчика классов, который следует использовать.
Returns:
Новый инициализированный объект.
Throws:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception произошедшее при попытке вызова конструктора объекта.
MBeanException - Конструктор объекта бросил исключение.
InstanceNotFoundException - Указанный загрузчик классов не зарегистрирован в сервере MBean.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное имя класса null.

instantiate

Object instantiate(String className, Object[] params, String[] signature) throws ReflectionException, MBeanException

Инициализирует объект, используя список всех зарегистрированных загрузчиков классов в сервере MBean Class Loader Repository. Класс объекта должен иметь публичный конструктор. Вызов возвращает ссылку на вновь созданный объект. Созданный объект не регистрируется в сервере MBean.

Parameters:
className - Имя класса подлежащего инициализации.
params - Массив, содержащий параметры вызываемого конструктора.
signature - Массив, содержащий сигнатуру вызываемого конструктора.
Returns:
Новый инициализированный объект.
Throws:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception произошедшее при попытке вызова конструктора объекта.
MBeanException - Конструктор объекта бросил исключение
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное имя класса null.

instantiate

Object instantiate(String className, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, MBeanException, InstanceNotFoundException

Инициализирует объект. Загрузчик классов, который следует использовать, идентифицируется по имени объекта. Если имя объекта загрузчика null, используется загрузчик классов, который загрузил сервер MBean. Класс объекта должен иметь публичный конструктор. Вызов возвращает ссылку на вновь созданный объект. Созданный объект не регистрируется в сервере MBean.

Parameters:
className - Имя класса объекта, подлежащего инициализации.
params - Массив, содержащий параметры вызываемого конструктора.
signature - Массив, содержащий сигнатуру вызываемого конструктора.
loaderName - Имя объекта загрузчика классов, который следует использовать.
Returns:
Новый инициализированный объект.
Throws:
ReflectionException - Оборачивает java.lang.ClassNotFoundException или java.lang.Exception произошедшее при попытке вызова конструктора объекта.
MBeanException - Конструктор объекта бросил исключение
InstanceNotFoundException - Указанный загрузчик классов не зарегистрирован в сервере MBean.
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: Переданное имя класса null.

deserialize

@Deprecated(since="1.5") default ObjectInputStream deserialize(ObjectName name, byte[] data) throws InstanceNotFoundException, OperationsException
Deprecated.
Используйте getClassLoaderFor для получения соответствующего загрузчика классов для десериализации.

Десериализует массив байтов в контексте загрузчика классов MBean.

Implementation Requirements:
Этот метод по умолчанию выбрасывает UnsupportedOperationException.
Parameters:
name - Имя MBean, чьё ClassLoader следует использовать для десериализации.
data - Массив байтов, подлежащий десериализации.
Returns:
Поток десериализованного объекта.
Throws:
InstanceNotFoundException - Указанный MBean не найден.
OperationsException - Любые обычные исключения, связанные с вводом/выводом.

deserialize

@Deprecated(since="1.5") default ObjectInputStream deserialize(String className, byte[] data) throws OperationsException, ReflectionException
Deprecated.
Используйте getClassLoaderRepository() для получения репозитория загрузчиков классов и использования его для десериализации.

Десериализует массив байтов в контексте загрузчика классов заданного MBean. Загрузчик классов находится путем загрузки класса className через Class Loader Repository. Полученный загрузчик класса и используется.

Implementation Requirements:
Этот метод по умолчанию выбрасывает UnsupportedOperationException.
Parameters:
className - Имя класса, чьё ClassLoader следует использовать для десериализации.
data - Массив байтов, подлежащий десериализации.
Returns:
Поток десериализованного объекта.
Throws:
OperationsException - Любые обычные исключения, связанные с вводом/выводом.
ReflectionException - Указанный класс не смог быть загружен репозиторием загрузчиков классов

deserialize

@Deprecated(since="1.5") default ObjectInputStream deserialize(String className, ObjectName loaderName, byte[] data) throws InstanceNotFoundException, OperationsException, ReflectionException
Deprecated.
Используйте getClassLoader для получения загрузчика классов для десериализации.

Десериализует массив байтов в контексте загрузчика классов заданного MBean. Загрузчик классов — это загрузчик класса с именем "className". Имя загрузчика классов, используемого для загрузки указанного класса, указано. Если null, используется загрузчик классов сервера MBean.

Implementation Requirements:
Этот метод по умолчанию выбрасывает UnsupportedOperationException.
Parameters:
className - Имя класса, чьё ClassLoader следует использовать для десериализации.
data - Массив байтов, подлежащий десериализации.
loaderName - Имя загрузчика классов, которое следует использовать для загрузки указанного класса. Если null, используется загрузчик классов сервера MBean.
Returns:
Поток десериализованного объекта.
Throws:
InstanceNotFoundException - Указанный MBean загрузчика классов не найден.
OperationsException - Любые обычные исключения, связанные с вводом/выводом.
ReflectionException - Указанный класс не смог быть загружен указанным загрузчиком классов.

getClassLoaderFor

ClassLoader getClassLoaderFor(ObjectName mbeanName) throws InstanceNotFoundException

Возвращает ClassLoader, который использовался для загрузки класса указанного MBean.

Parameters:
mbeanName - Имя объекта MBean.
Returns:
ClassLoader, используемый для данного MBean. Если l — фактический ClassLoader MBean, и r — возвращаемое значение, то либо:
  • r идентичен l; или
  • результат r.loadClass(s) совпадает с l.loadClass(s) для любой строки s.
Это означает, что ClassLoader может быть обернут в другой ClassLoader по соображениям безопасности или по другим причинам.
Throws:
InstanceNotFoundException - если указанный MBean не найден.

getClassLoader

ClassLoader getClassLoader(ObjectName loaderName) throws InstanceNotFoundException

Возвращает указанный ClassLoader.

Parameters:
loaderName - Имя объекта ClassLoader. Может быть null, в этом случае возвращается собственный ClassLoader сервера MBean.
Returns:
Указанный ClassLoader. Если l — фактический ClassLoader с таким именем, и r — возвращаемое значение, то либо:
  • r идентичен l; или
  • результат r.loadClass(s) совпадает с l.loadClass(s) для любой строки s.
Это означает, что ClassLoader может быть обернут в другой ClassLoader по соображениям безопасности или по другим причинам.
Throws:
InstanceNotFoundException - если указанный ClassLoader не найден.

getClassLoaderRepository

ClassLoaderRepository getClassLoaderRepository()

Возвращает ClassLoaderRepository для этого сервера MBean.

Returns:
ClassLoaderRepository для этого сервера MBean.

© 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/javax/management/MBeanServer.html

Spec-Zone.ru

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