Spec-Zone.ru › OpenJDK 21

Интерфейс 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").

С:
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 для данного MBeanServer.
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)
Инициализирует объект, используя список всех загрузчиков классов, зарегистрированных в Class Loader Repository сервера MBean.
Object instantiate(String className, Object[] params, String[] signature)
Инициализирует объект, используя список всех загрузчиков классов, зарегистрированных в 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)
Получает MBeans, управляемые сервером MBean.
Set<ObjectName> queryNames(ObjectName name, QueryExp query)
Получает имена MBeans, управляемых сервером 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: Переданное имя класса (className) равно null, переданное имя объекта (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: Переданное имя класса (className) равно null, переданное имя объекта (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 не указано ни одного имени.
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: переданное в параметре имя класса равно null, переданное в параметре имя объекта содержит шаблон или не указано имя объекта для 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

registerMBean

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

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

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

Параметры:
object - MBean, который будет зарегистрирован как 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, отправляется уведомление, как описано выше.

Определено в:
unregisterMBean в интерфейсе MBeanServerConnection
Параметры:
name - Имя объекта MBean, который нужно удалить.
Исключения:
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 бросил исключение.
См. также:
  • MBeanRegistration

getObjectInstance

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

queryMBeans

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

queryNames

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

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

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 идентифицируется своим именем объекта.
Specified by:
setAttribute в интерфейсе MBeanServerConnection
Parameters:
name - Имя MBean, в котором необходимо установить атрибут.
attribute - Идентификатор устанавливаемого атрибута и значение, которое нужно установить.
Throws:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null.
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
AttributeNotFoundException - Указанный атрибут недоступен в MBean.
InvalidAttributeValueException - Указанное значение для атрибута не является допустимым.
MBeanException - Оборачивает исключение, брошенное setter MBean.
ReflectionException - Оборачивает java.lang.Exception брошенное при попытке вызвать setter.
See Also:
  • 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);
 }
 
Specified by:
setAttributes в интерфейсе MBeanServerConnection
Parameters:
name - Имя объекта MBean, в котором атрибуты должны быть установлены.
attributes - Список атрибутов: идентификаторы атрибутов, которые должны быть установлены, и значения, которые необходимо установить.
Returns:
Список атрибутов, которые были установлены, вместе с их новыми значениями.
Throws:
RuntimeOperationsException - Оборачивает java.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибуты в параметре равны null.
InstanceNotFoundException - Указанный MBean не зарегистрирован на сервере MBean.
ReflectionException - Возникло исключение при попытке вызвать метод getAttributes динамического MBean.
See Also:
  • 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. Имя домена по умолчанию используется в качестве части ObjectName для MBean, если пользователь не указывает домен.
Определено в:
getDefaultDomain в интерфейсе MBeanServerConnection
Возвращает:
домен по умолчанию.

getDomains

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

Возвращает список доменов, в которых в настоящее время зарегистрирован любой MBean. Строка находится в возвращаемом массиве тогда и только тогда, когда существует как минимум один зарегистрированный MBean с ObjectName, чей 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
Description copied from interface: MBeanServerConnection

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

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

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

Specified by:
removeNotificationListener in interface MBeanServerConnection
Parameters:
name - Имя MBean, из которого следует удалить слушателя.
listener - Слушатель, который требуется удалить.
filter - Фильтр, указанный при добавлении слушателя.
handback - Передаваемые данные, указанные при добавлении слушателя.
Throws:
InstanceNotFoundException - Указанное имя MBean не соответствует ни одному из зарегистрированных MBean.
ListenerNotFoundException - Слушатель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и передаваемыми данными.
See Also:
  • MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

getMBeanInfo

MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException
Description copied from interface: MBeanServerConnection
Этот метод обнаруживает атрибуты и операции, которые MBean предоставляет для управления.
Specified by:
getMBeanInfo in interface MBeanServerConnection
Parameters:
name - Имя MBean для анализа
Returns:
Экземпляр MBeanInfo, позволяющий получить все атрибуты и операции этого MBean.
Throws:
InstanceNotFoundException - Указанный MBean не найден.
IntrospectionException - Произошла ошибка во время интроспекции.
ReflectionException - Произошла ошибка при попытке вызвать getMBeanInfo для динамического MBean.

isInstanceOf

boolean isInstanceOf(ObjectName name, String className) throws InstanceNotFoundException
Description copied from interface: MBeanServerConnection

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

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

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

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

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

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

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

Specified by:
isInstanceOf in interface MBeanServerConnection
Parameters:
name - ObjectName MBean.
className - Имя класса.
Returns:
true, если указанный MBean является экземпляром указанного класса в соответствии с вышеизложенными правилами, в противном случае false.
Throws:
InstanceNotFoundException - Указанный MBean не зарегистрирован в сервере MBean.
See Also:
  • Class.isInstance(java.lang.Object)

instantiate

Object instantiate(String className) throws ReflectionException, MBeanException

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

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

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

instantiate

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

Инициализирует объект, используя загрузочный агент, указанный по его имени. Если имя загрузочного агента равно null, используется ClassLoader, который загрузил сервер 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, используется ClassLoader, который загрузил сервер MBean. Класс объекта должен иметь публичный конструктор. Вызов возвращает ссылку на вновь созданный объект. Новый объект не регистрируется в сервере MBean.

Parameters:
className - Имя класса объекта, который нужно инициализировать.
loaderName - Имя объекта загрузочного агента, который следует использовать.
params - Массив, содержащий параметры вызываемого конструктора.
signature - Массив, содержащий сигнатуру вызываемого конструктора.
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, загрузочный агент которого следует использовать для десериализации.
data - Массив байтов для десериализации.
Returns:
Поток десериализованного объекта.
Throws:
InstanceNotFoundException - Указанный MBean не найден.
OperationsException - Любые обычные исключения, связанные с вводом/выводом.

deserialize

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

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

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

deserialize

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

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

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

getClassLoaderFor

ClassLoader getClassLoaderFor(ObjectName mbeanName) throws InstanceNotFoundException

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

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

getClassLoader

ClassLoader getClassLoader(ObjectName loaderName) throws InstanceNotFoundException

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

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

getClassLoaderRepository

ClassLoaderRepository getClassLoaderRepository()

Возвращает хранилище загрузчиков классов для этого сервера MBean.

Возвращает:
Хранилище загрузчиков классов для этого сервера MBean.

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.management/javax/management/MBeanServer.html

Spec-Zone.ru

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