Интерфейс 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.
Методы 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() |
Возвращает ClassLoaderRepository для этого сервера MBean. |
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 будет использовать свой Default Loader
Repository для загрузки класса MBean. MBean ассоциируется с именем объекта. Если указанное имя объекта равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
Этот метод эквивалентен createMBean(className, name, (Object[]) null, (String[])
null).
Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.
- Определено в:
-
createMBeanв интерфейсеMBeanServerConnection - Параметры:
-
className- Имя класса MBean, подлежащего созданию. -
name- Имя объекта MBean. Может быть null. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса вновь созданного MBean. Если содержимоеObjectNameравноn, содержимое имени Java-класса равно.getMBeanInfo(n).getClassName() - Исключения:
-
RuntimeOperationsException- Оберткаjava.lang.IllegalArgumentException: Имя класса, переданное в качестве параметра, равно null, имяObjectName, переданное в качестве параметра, содержит шаблон или для MBean не указаноObjectName. -
RuntimeMBeanException- Если конструктор MBean или его методpreRegisterилиpostRegisterвыбросилRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean выбросилRuntimeException, методcreateMBeanвыброситRuntimeMBeanException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет зарегистрирован, даже если методcreateMBeanвыбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть выброшенpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean выбросилError, методcreateMBeanвыброситRuntimeErrorException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет зарегистрирован, даже если методcreateMBeanвыбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть выброшенpreRegister, в этом случае MBean не будет зарегистрирован. -
ReflectionException- Оберткаjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшая при попытке вызвать конструктор MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean выбросил исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean выбросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean - См. также:
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: Имя класса, переданное в качестве параметра, равно null, имяObjectName, переданное в качестве параметра, содержит шаблон или для MBean не указаноObjectName. -
RuntimeMBeanException- Если конструктор MBean или его методpreRegisterилиpostRegisterвыбросилRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean выбросилRuntimeException, методcreateMBeanвыброситRuntimeMBeanException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет зарегистрирован, даже если методcreateMBeanвыбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть выброшенpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean выбросилError, методcreateMBeanвыброситRuntimeErrorException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет зарегистрирован, даже если методcreateMBeanвыбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть выброшенpreRegister, в этом случае MBean не будет зарегистрирован. -
ReflectionException- Оберткаjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшая при попытке вызвать конструктор MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean выбросил исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean выбросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере MBean. - См. также:
createMBean
ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
Default Loader
Repository для загрузки класса MBean. Имя объекта связывается с MBean. Если указанное имя объекта равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister. Если этот метод успешно создает MBean, отправляется уведомление, как описано выше.
- Указано в:
-
createMBeanв интерфейсеMBeanServerConnection - Параметры:
-
className- Имя класса MBean, который должен быть создан. -
name- Имя объекта MBean. Может быть null. -
params- Массив, содержащий параметры конструктора, который должен быть вызван. -
signature- Массив, содержащий сигнатуру конструктора, который должен быть вызван. - Возвращает:
- An
ObjectInstance, containing theObjectNameand the Java class name of the newly instantiated MBean. If the containedObjectNameisn, the contained Java class name is.getMBeanInfo(n).getClassName() - Исключения:
-
RuntimeOperationsException- Wraps ajava.lang.IllegalArgumentException: The className passed in parameter is null, theObjectNamepassed in parameter contains a pattern or noObjectNameis specified for the 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- Wraps ajava.lang.ClassNotFoundExceptionor ajava.lang.Exceptionthat occurred when trying to invoke the MBean's constructor. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean вызвал исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean вызвал исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean - См. также:
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- Массив, содержащий сигнатуру конструктора, который должен быть вызван. - Возвращает:
- An
ObjectInstance, containing theObjectNameand the Java class name of the newly instantiated MBean. If the containedObjectNameisn, the contained Java class name is.getMBeanInfo(n).getClassName() - Исключения:
-
RuntimeOperationsException- Wraps ajava.lang.IllegalArgumentException: The className passed in parameter is null, theObjectNamepassed in parameter contains a pattern or noObjectNameis specified for the 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- Wraps ajava.lang.ClassNotFoundExceptionor ajava.lang.Exceptionthat occurred when trying to invoke the MBean's constructor. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean вызвал исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean вызвал исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean -
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. - Возвращает:
- An
ObjectInstance, containing theObjectNameand the Java class name of the newly registered MBean. If the containedObjectNameisn, the contained Java class name is.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- Wraps ajava.lang.IllegalArgumentException: The object passed in parameter is null or no object name is specified. - См. также:
unregisterMBean
void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException
Если этот метод успешно удаляет MBean, отправляется уведомление, как описано выше.
- Specified by:
-
unregisterMBeanin interfaceMBeanServerConnection - Parameters:
-
name- Имя объекта удаляемого MBean. - Throws:
-
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 выбросил исключение. - See Also:
getObjectInstance
ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException
MBeanServerConnection- Specified by:
-
getObjectInstancein interfaceMBeanServerConnection - Parameters:
-
name- Имя объекта MBean. - Returns:
- Информацию об MBean, связанную с указанным именем объекта name. Содержащийся
ObjectNameобъект являетсяname, а имя класса —.getMBeanInfo(name).getClassName() - Throws:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean.
queryMBeans
Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
ObjectName и/или выражением запроса, конкретный MBean. Когда имя объекта равно null или не указаны свойства домена и ключа, все объекты подлежат отбору (и отфильтровываются, если указан запрос). Возвращает набор объектов ObjectInstance (содержащих ObjectName и имя класса Java) для выбранных MBeans.- Specified by:
-
queryMBeansin interfaceMBeanServerConnection - Parameters:
-
name- Шаблон имени объекта, идентифицирующий MBeans для извлечения. Если равно null или не указаны свойства домена и ключа, будут извлечены все зарегистрированные MBeans. -
query- Выражение запроса, применяемое для выбора MBeans. Если равно null, выражение запроса не будет применено для выбора MBeans. - Returns:
- Набор, содержащий объекты
ObjectInstanceдля выбранных MBeans. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
queryNames
Set<ObjectName> queryNames(ObjectName name, QueryExp query)
ObjectName и/или выражением запроса, конкретное имя MBean (эквивалентно проверке, зарегистрирован ли MBean). Когда имя объекта равно null или не указаны свойства домена и ключа, выбираются все объекты (и отфильтровываются, если указан запрос). Возвращает набор имен объектов для выбранных MBeans.- Specified by:
-
queryNamesin interfaceMBeanServerConnection - Parameters:
-
name- Шаблон имени объекта, идентифицирующий имена MBeans для извлечения. Если равно null или не указаны свойства домена и ключа, будут извлечены имена всех зарегистрированных MBeans. -
query- Выражение запроса, применяемое для выбора MBeans. Если равно null, выражение запроса не будет применено для выбора MBeans. - Returns:
- Набор, содержащий имена объектов для выбранных MBeans. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
isRegistered
boolean isRegistered(ObjectName name)
MBeanServerConnection- Specified by:
-
isRegisteredin interfaceMBeanServerConnection - Parameters:
-
name- Имя объекта MBean для проверки. - Returns:
- True, если MBean уже зарегистрирован на сервере MBean, иначе false.
- Throws:
-
RuntimeOperationsException- Обёртка надjava.lang.IllegalArgumentException: Имя объекта в параметре равно null.
getMBeanCount
Integer getMBeanCount()
- Specified by:
-
getMBeanCountin interfaceMBeanServerConnection - Returns:
- Количество зарегистрированных MBeans, обернутое в Integer. Если разрешения вызывающего узла ограничены, это число может быть больше, чем число MBeans, к которым у вызывающего узла есть доступ.
getAttribute
Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
MBeanServerConnection- Specified by:
-
getAttributein interfaceMBeanServerConnection - Parameters:
-
name- Имя объекта MBean, из которого необходимо извлечь атрибут. -
attribute- Строка, содержащая имя атрибута для извлечения. - Returns:
- Значение извлечённого атрибута.
- Throws:
-
RuntimeOperationsException- Обёртка надjava.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибут в параметре равен null. -
MBeanException- Обёртка над исключением, выброшенным методом получения MBean. -
AttributeNotFoundException- Указанный атрибут недоступен в MBean. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
ReflectionException- Обёртка надjava.lang.Exception, выброшенной при попытке вызвать setter. - See Also:
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:
-
getAttributesin interfaceMBeanServerConnection - Parameters:
-
name- Имя объекта MBean, из которого извлекаются атрибуты. -
attributes- Список атрибутов для извлечения. - Returns:
- Список извлечённых атрибутов.
- Throws:
-
RuntimeOperationsException- Обёртка надjava.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
ReflectionException- Произошло исключение при попытке вызвать метод getAttributes динамического MBean. - See Also:
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 с указанным именем. Управляемый объект идентифицируется по имени объекта.
Если один или несколько атрибутов по какой-либо причине не могут быть установлены, они будут опущены из возвращаемого 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, такой как:
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 с именем объекта, у которого getDomain() равно этой строке. Порядок строк в возвращаемом массиве не определён.
- Определено в:
-
getDomainsв интерфейсеMBeanServerConnection - Возвращает:
- список доменов.
addNotificationListener
void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
Добавляет слушателя к зарегистрированному управляемому объекту MBean. Уведомления, исходящие от управляемого объекта, будут перенаправлены слушателю.
Если источник уведомления является ссылкой на объект управляемого объекта, сервер MBean заменит его именем объекта этого управляемого объекта. В противном случае источник остаётся без изменений.- Определено в:
-
addNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя управляемого объекта MBean, к которому должен быть добавлен слушатель. -
listener- Объект слушателя, который будет обрабатывать уведомления, исходящие от зарегистрированного управляемого объекта. -
filter- Объект фильтра. Если filter равен null, фильтрация уведомлений не будет выполняться. -
handback- Контекст, который будет передан слушателю при отправке уведомления. - Исключения:
-
InstanceNotFoundException- Предоставленное имя управляемого объекта не соответствует ни одному из зарегистрированных управляемых объектов. - См. также:
addNotificationListener
void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
Добавляет слушателя к зарегистрированному MBean.
Уведомление, испущенное MBean, будет перенаправлено сервером MBeanServer слушателю. Если источником уведомления является ссылка на объект MBean, сервер MBean заменит её именем объекта MBean. В противном случае источник остаётся неизменным.
Объект слушателя, который получает уведомления, — это тот, который зарегистрирован под данным именем в момент вызова этого метода. Даже если он будет позже дезактивирован, он по-прежнему будет получать уведомления.
- Specified by:
-
addNotificationListenerin interfaceMBeanServerConnection - Parameters:
-
name- Имя MBean, к которому должен быть добавлен слушатель. -
listener- Имя объекта слушателя, который будет обрабатывать уведомления, испущенные зарегистрированным MBean. -
filter- Объект фильтра. Если filter равен null, никакое фильтрация перед обработкой уведомлений не будет выполнена. -
handback- Контекст, который будет передан слушателю при испускании уведомления. - Throws:
-
RuntimeOperationsException- ОборачиваетIllegalArgumentException. MBean с именемlistenerсуществует, но не реализует интерфейсNotificationListener. -
InstanceNotFoundException- Имя MBean слушателя уведомлений или распространителя уведомлений не соответствует ни одному из зарегистрированных MBean. - See Also:
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionЕсли слушатель зарегистрирован более одного раза, возможно, с разными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.
- Specified by:
-
removeNotificationListenerin interfaceMBeanServerConnection - Parameters:
-
name- Имя MBean, из которого должен быть удален слушатель. -
listener- Имя объекта слушателя, который нужно удалить. - Throws:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. - See Also:
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionУдаляет слушателя из зарегистрированного MBean.
MBean должен иметь слушателя, который точно соответствует заданным параметрам listener, filter и handback. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть null только в том случае, если они являются null в удаляемом слушателе.
- Specified by:
-
removeNotificationListenerin interfaceMBeanServerConnection - Parameters:
-
name- Имя MBean, из которого должен быть удалён слушатель. -
listener- Имя объекта слушателя, который нужно удалить. -
filter- Фильтр, указанный при добавлении слушателя. -
handback- Данные, указанные при добавлении слушателя. - Throws:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и данными. - See Also:
removeNotificationListener
void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionУдаляет слушателя из зарегистрированного MBean.
Если слушатель зарегистрирован более одного раза, возможно, с разными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.
- Specified by:
-
removeNotificationListenerin interfaceMBeanServerConnection - Parameters:
-
name- Имя MBean, из которого должен быть удалён слушатель. -
listener- Слушатель, который нужно удалить. - Throws:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. - See Also:
removeNotificationListener
void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionУдаляет слушателя из зарегистрированного MBean.
MBean должен иметь слушателя, который точно соответствует заданным параметрам listener, filter и handback. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть null только в том случае, если они являются null в удаляемом слушателе.
- Specified by:
-
removeNotificationListenerin interfaceMBeanServerConnection - Parameters:
-
name- Имя MBean, из которого должен быть удалён слушатель. -
listener- Слушатель, который нужно удалить. -
filter- Фильтр, указанный при добавлении слушателя. -
handback- Данные, указанные при добавлении слушателя. - Throws:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и данными. - See Also:
getMBeanInfo
MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException
MBeanServerConnection- Specified by:
-
getMBeanInfoin interfaceMBeanServerConnection - Parameters:
-
name- Имя MBean для анализа - Returns:
- Экземпляр
MBeanInfo, позволяющий извлечь все атрибуты и операции этого MBean. - Throws:
-
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.
- Specified by:
-
isInstanceOfв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean. -
className- Имя класса. - Возвращает:
- true, если указанный MBean является экземпляром указанного класса в соответствии с вышеуказанными правилами, в противном случае — false.
- Исключения:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован в сервере MBean. - См. также:
instantiate
Object instantiate(String className) throws ReflectionException, MBeanException
Создаёт объект с использованием списка всех загрузчиков классов, зарегистрированных в хранилище загрузчиков классов сервера 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
Создаёт объект с использованием загрузчика классов, идентифицируемого по имени объекта. Если имя загрузчика равно 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
Создаёт объект с использованием списка всех загрузчиков классов, зарегистрированных в хранилище загрузчиков классов сервера 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. - Возвращает:
- Загрузчик классов, используемый для данного 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()
Возвращает 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://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/MBeanServer.html
getClassLoaderRepository()для получения хранилища загрузчиков классов и используйте его для десериализации.