Интерфейс MBeanServer
- Все суперинтерфейсы:
MBeanServerConnection
- Все известные подинтерфейсы:
MBeanServerForwarder
public interface MBeanServer extends MBeanServerConnection
Этот интерфейс предназначен для управления MBean на стороне агента. Он содержит методы, необходимые для создания, регистрации и удаления MBean, а также методы доступа к зарегистрированным MBean. Это основной компонент инфраструктуры JMX.
Обычно пользовательский код не реализует этот интерфейс. Вместо этого объект, реализующий этот интерфейс, получают с помощью одного из методов класса MBeanServerFactory.
Каждый MBean, добавленный на сервер MBean, становится управляемым: его атрибуты и операции становятся удалённо доступными через соединители/адаптеры, подключённые к этому серверу MBean. Объект Java нельзя зарегистрировать на сервере MBean, если он не является MBean, соответствующим требованиям JMX.
При регистрации или отмене регистрации MBean на сервере MBean генерируется уведомление MBeanServerNotification. Чтобы зарегистрировать объект в качестве прослушивателя уведомлений MBeanServerNotification, вызовите метод сервера MBean addNotificationListener, передав ObjectName ObjectName объекта MBeanServerDelegate. Этот ObjectName имеет вид:
JMImplementation:type=MBeanServerDelegate.
Методы MBeanServer и его подклассов могут выбрасывать SecurityException, если реализация не разрешает доступ к нижележащему ресурсу.
- Начиная с версии:
- 1.5
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addNotificationListener |
Добавляет прослушиватель к зарегистрированному MBean. |
void |
addNotificationListener |
Добавляет прослушиватель к зарегистрированному MBean. |
ObjectInstance |
createMBean |
Создаёт экземпляр MBean и регистрирует его на сервере MBean. |
ObjectInstance |
createMBean |
Создаёт экземпляр MBean и регистрирует его на сервере MBean. |
ObjectInstance |
createMBean |
Создаёт экземпляр MBean и регистрирует его на сервере MBean. |
ObjectInstance |
createMBean |
Создаёт экземпляр MBean и регистрирует его на сервере MBean. |
default ObjectInputStream |
deserialize |
Устарело. |
default ObjectInputStream |
deserialize |
Устарело. Используйте getClassLoader, чтобы получить загрузчик классов для десериализации. |
default ObjectInputStream |
deserialize |
Устарело. Используйте getClassLoaderFor, чтобы получить подходящий загрузчик классов для десериализации. |
Object |
getAttribute |
Получает значение указанного атрибута именованного MBean. |
AttributeList |
getAttributes |
Получает значения нескольких атрибутов именованного MBean. |
ClassLoader |
getClassLoader |
Возвращает именованный ClassLoader. |
ClassLoader |
getClassLoaderFor |
Возвращает ClassLoader, использованный для загрузки класса именованного MBean. |
ClassLoaderRepository |
getClassLoaderRepository() |
Возвращает репозиторий загрузчиков классов для этого MBeanServer. |
String |
getDefaultDomain() |
Возвращает домен по умолчанию, используемый для именования MBean. |
String[] |
getDomains() |
Возвращает список доменов, в которых в данный момент зарегистрированы MBean. |
Integer |
getMBeanCount() |
Возвращает количество MBean, зарегистрированных на сервере MBean. |
MBeanInfo |
getMBeanInfo |
Этот метод определяет атрибуты и операции, предоставляемые MBean для управления. |
ObjectInstance |
getObjectInstance |
Получает ObjectInstance для заданного MBean, зарегистрированного на сервере MBean. |
Object |
instantiate |
Создаёт экземпляр объекта, используя список всех загрузчиков классов, зарегистрированных в Class Loader
Repository сервера MBean. |
Object |
instantiate |
Создаёт экземпляр объекта, используя список всех загрузчиков классов в Class Loader
Repository сервера MBean. |
Object |
instantiate |
Создаёт экземпляр объекта, используя загрузчик классов, указанный его ObjectName. |
Object |
instantiate |
Создаёт экземпляр объекта. |
Object |
invoke |
Вызывает операцию MBean. |
boolean |
isInstanceOf |
Возвращает true, если указанный MBean является экземпляром указанного класса, и false в противном случае. |
boolean |
isRegistered |
Проверяет, зарегистрирован ли уже на сервере MBean объект MBean, идентифицируемый своим именем объекта. |
Set |
queryMBeans |
Получает MBean, управляемые сервером MBean. |
Set |
queryNames |
Получает имена MBean, управляемых сервером MBean. |
ObjectInstance |
registerMBean |
Регистрирует существующий объект как MBean на сервере MBean. |
void |
removeNotificationListener |
Удаляет прослушиватель из зарегистрированного MBean. |
void |
removeNotificationListener |
Удаляет прослушиватель из зарегистрированного MBean. |
void |
removeNotificationListener |
Удаляет прослушиватель из зарегистрированного MBean. |
void |
removeNotificationListener |
Удаляет прослушиватель из зарегистрированного MBean. |
void |
setAttribute |
Устанавливает значение указанного атрибута именованного MBean. |
AttributeList |
setAttributes |
Устанавливает значения нескольких атрибутов именованного MBean. |
void |
unregisterMBean |
Отменяет регистрацию MBean на сервере MBean. |
Подробное описание методов
createMBean
ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
Создает экземпляр MBean и регистрирует его на MBean-сервере. Для загрузки класса MBean MBean-сервер использует свой Default Loader
Repository. С 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 не указано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— этот класс не является MBean, совместимым с JMX. - См. также:
createMBean
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
Создает экземпляр MBean и регистрирует его на MBean-сервере. Используемый загрузчик классов определяется его именем объекта. С MBean связывается имя объекта. Если имя объекта загрузчика равно null, будет использоваться ClassLoader, загрузивший 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 не указано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— этот класс не является MBean, совместимым с JMX. -
InstanceNotFoundException— указанный загрузчик классов не зарегистрирован на MBean-сервере. - См. также:
createMBean
ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
Default Loader
Repository. С 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— этот класс не является MBean, совместимым с JMX. - См. также:
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— этот класс не является MBean, совместимым с JMX. -
InstanceNotFoundException— указанный загрузчик классов не зарегистрирован на MBean-сервере. - См. также:
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— этот объект не является MBean, совместимым с JMX. -
RuntimeOperationsException— оборачиваетjava.lang.IllegalArgumentException: переданный в параметре объект равен null или имя объекта не указано. - См. также:
unregisterMBean
void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException
Если этот метод успешно отменяет регистрацию MBean, отправляется уведомление, как описано выше.
- Определено в:
-
unregisterMBeanв интерфейсеMBeanServerConnection - Параметры:
-
name— имя объекта MBean, регистрацию которого нужно отменить. - Вызывает исключения:
-
RuntimeOperationsException— оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре равно null или MBean, регистрацию которого пытаются отменить, является MBeanMBeanServerDelegate. -
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 вызвал исключение. - См. также:
getObjectInstance
ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException
MBeanServerConnectionObjectInstance для заданного 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)
ObjectName и/или выражению запроса; конкретный MBean. Если имя объекта равно null или домен и свойства ключа не указаны, выбираются все объекты (и фильтруются, если задан запрос). Метод возвращает набор объектов ObjectInstance (содержащих ObjectName и имя класса Java) для выбранных MBean.- Определено в:
-
queryMBeansв интерфейсеMBeanServerConnection - Параметры:
-
name— шаблон имени объекта, определяющий извлекаемые MBean. Если значение равно null или домен и свойства ключа не указаны, будут извлечены все зарегистрированные MBean. -
query— выражение запроса для выбора MBean. Если значение равно null, выражение запроса для выбора MBean применяться не будет. - Возвращает:
- Набор, содержащий объекты
ObjectInstanceдля выбранных MBean. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
queryNames
Set<ObjectName> queryNames(ObjectName name, QueryExp query)
ObjectName и/или выражению запроса; имя конкретного MBean (что эквивалентно проверке регистрации MBean). Если имя объекта равно null или домен и свойства ключа не указаны, выбираются все объекты (и фильтруются, если задан запрос). Метод возвращает набор имен ObjectName для выбранных MBean.- Определено в:
-
queryNamesв интерфейсеMBeanServerConnection - Параметры:
-
name— шаблон имени объекта, определяющий извлекаемые имена MBean. Если значение равно null или домен и свойства ключа не указаны, будут извлечены имена всех зарегистрированных MBean. -
query— выражение запроса для выбора MBean. Если значение равно null, выражение запроса для выбора MBean применяться не будет. - Возвращает:
- Набор, содержащий имена ObjectName выбранных MBean. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
isRegistered
boolean isRegistered(ObjectName name)
MBeanServerConnection- Определено в:
-
isRegisteredв интерфейсеMBeanServerConnection - Параметры:
-
name— имя объекта проверяемого MBean. - Возвращает:
- True, если MBean уже зарегистрирован на MBean-сервере; в противном случае false.
- Вызывает исключения:
-
RuntimeOperationsException— оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре равно null.
getMBeanCount
Integer getMBeanCount()
- Определено в:
-
getMBeanCountв интерфейсеMBeanServerConnection - Возвращает:
- количество зарегистрированных MBean, обернутое в Integer. Если разрешения вызывающего ограничены, это число может быть больше количества MBean, доступных вызывающему.
getAttribute
Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
MBeanServerConnection- Определено в:
-
getAttributeв интерфейсеMBeanServerConnection - Параметры:
-
name— имя объекта MBean, у которого нужно получить атрибут. -
attribute— строка с именем извлекаемого атрибута. - Возвращает:
- Значение полученного атрибута.
- Вызывает исключения:
-
RuntimeOperationsException— оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре или атрибут в параметре равны null. -
MBeanException— оборачивает исключение, вызванное методом получения значения MBean. -
AttributeNotFoundException— указанный атрибут недоступен в MBean. -
InstanceNotFoundException— указанный MBean не зарегистрирован на MBean-сервере. -
ReflectionException— оборачиваетjava.lang.Exception, вызванное при попытке вызвать метод установки значения. - См. также:
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);
}
- Определено в:
-
getAttributesв интерфейсеMBeanServerConnection - Параметры:
-
name— имя объекта MBean, у которого извлекаются атрибуты. -
attributes— список извлекаемых атрибутов. - Возвращает:
- Список полученных атрибутов.
- Вызывает исключения:
-
RuntimeOperationsException— оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре или атрибуты в параметре равны null. -
InstanceNotFoundException— указанный MBean не зарегистрирован на MBean-сервере. -
ReflectionException— при попытке вызвать метод getAttributes динамического MBean произошло исключение. - См. также:
setAttribute
void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
MBeanServerConnection- Определено в:
-
setAttributeв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, атрибут которого нужно установить. -
attribute- Идентификатор атрибута, который нужно установить, и значение, которое ему нужно присвоить. - Исключения:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
AttributeNotFoundException- Указанный атрибут недоступен в MBean. -
InvalidAttributeValueException- Указанное значение атрибута недопустимо. -
MBeanException- Оборачивает исключение, выброшенное методом-сеттером MBean. -
ReflectionException- Оборачиваетjava.lang.Exception, выброшенное при попытке вызвать метод-сеттер. - См. также:
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 произошло исключение. - См. также:
invoke
Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException
MBeanServerConnectionВызывает операцию MBean.
Поскольку для различения потенциально перегруженных операций необходим signature, гораздо проще по возможности вызывать операции через прокси MBean. Например, допустим, у вас есть интерфейс стандартного 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- Определено в:
-
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 заменит его на ObjectName этого MBean. В противном случае источник остается без изменений.- Определено в:
-
addNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, к которому нужно добавить слушателя. -
listener- Объект-слушатель, который будет обрабатывать уведомления, отправляемые зарегистрированным MBean. -
filter- Объект фильтра. Если filter равен null, перед обработкой уведомлений фильтрация выполняться не будет. -
handback- Контекст, передаваемый слушателю при отправке уведомления. - Исключения:
-
InstanceNotFoundException- Указанное имя MBean не соответствует ни одному из зарегистрированных MBean. - См. также:
addNotificationListener
void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
Добавляет слушателя к зарегистрированному MBean.
Уведомление, отправленное MBean, будет переслано слушателю сервером MBean. Если источник уведомления является ссылкой на объект MBean, сервер MBean заменит его на ObjectName этого MBean. В противном случае источник остается без изменений.
Объектом-слушателем, получающим уведомления, является объект, зарегистрированный под указанным именем на момент вызова этого метода. Даже если впоследствии его регистрация будет отменена, он продолжит получать уведомления.
- Определено в:
-
addNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, к которому нужно добавить слушателя. -
listener- Имя объекта слушателя, который будет обрабатывать уведомления, отправляемые зарегистрированным MBean. -
filter- Объект фильтра. Если filter равен null, перед обработкой уведомлений фильтрация выполняться не будет. -
handback- Контекст, передаваемый слушателю при отправке уведомления. - Исключения:
-
RuntimeOperationsException- ОборачиваетIllegalArgumentException. MBean с именемlistenerсуществует, но не реализует интерфейсNotificationListener. -
InstanceNotFoundException- Имя MBean слушателя уведомлений или MBean-источника уведомлений не соответствует ни одному из зарегистрированных MBean. - См. также:
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionЕсли слушатель зарегистрирован несколько раз, возможно, с разными фильтрами или контекстами обратного вызова, этот метод удалит все такие регистрации.
- Определено в:
-
removeNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, из которого нужно удалить слушателя. -
listener- Имя объекта слушателя, который нужно удалить. - Исключения:
-
InstanceNotFoundException- Указанное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. - См. также:
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 или зарегистрирован с другим фильтром либо объектом обратной связи. - См. также:
removeNotificationListener
void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionУдаляет слушателя из зарегистрированного MBean.
Если слушатель зарегистрирован несколько раз, возможно, с разными фильтрами или контекстами обратного вызова, этот метод удалит все такие регистрации.
- Определено в:
-
removeNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, из которого нужно удалить слушателя. -
listener- Слушатель, которого нужно удалить. - Исключения:
-
InstanceNotFoundException- Указанное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. - См. также:
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 или зарегистрирован с другим фильтром либо объектом обратной связи. - См. также:
getMBeanInfo
MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException
MBeanServerConnection- Определено в:
-
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-ObjectNameMBean. -
className- Имя класса. - Возвращает:
- true, если согласно приведенным выше правилам указанный MBean является экземпляром указанного класса, и false в противном случае.
- Исключения:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. - См. также:
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).
- Параметры:
-
className- Имя класса создаваемого MBean. -
loaderName- Имя объекта загрузчика классов, который нужно использовать. - Возвращает:
- Вновь созданный объект.
- Исключения:
-
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
Создает экземпляр объекта с помощью списка всех загрузчиков классов, зарегистрированных в Class Loader
Repository сервера MBean. Класс объекта должен иметь открытый конструктор. Вызов возвращает ссылку на вновь созданный объект. Новый объект не регистрируется на сервере MBean.
- Параметры:
-
className- Имя класса создаваемого объекта. -
params- Массив параметров вызываемого конструктора. -
signature- Массив сигнатуры вызываемого конструктора. - Возвращает:
- Вновь созданный объект.
- Исключения:
-
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.
- Параметры:
-
className- Имя класса создаваемого объекта. -
loaderName- Имя объекта загрузчика классов, который нужно использовать. -
params- Массив параметров вызываемого конструктора. -
signature- Массив сигнатуры вызываемого конструктора. - Возвращает:
- Вновь созданный объект.
- Исключения:
-
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
getClassLoaderFor, чтобы получить подходящий загрузчик классов для десериализации.Десериализует массив байтов в контексте загрузчика классов MBean.
- Требования к реализации:
- По умолчанию этот метод выбрасывает
UnsupportedOperationException. - Параметры:
-
name- Имя MBean, загрузчик классов которого следует использовать для десериализации. -
data- Массив байтов для десериализации. - Возвращает:
- Десериализованный поток объектов.
- Исключения:
-
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. - Возвращает:
- ClassLoader, использованный для данного MBean. Если l — фактический ClassLoader 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. - Возвращает:
- Именованный ClassLoader. Если l — фактический ClassLoader с этим именем, а r — возвращаемое значение, то выполняется одно из условий:
- r идентичен l; или
- результат r
.loadClass(s)совпадает с результатом l.loadClass(s)для любой строки s.
- Исключения:
-
InstanceNotFoundException— если именованный ClassLoader не найден.
getClassLoaderRepository
ClassLoaderRepository getClassLoaderRepository()
Возвращает ClassLoaderRepository этого сервера MBean.
- Возвращает:
- ClassLoaderRepository этого сервера MBean.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/MBeanServer.html
getClassLoaderRepository(), чтобы получить репозиторий загрузчиков классов и использовать его для десериализации.