Интерфейс MBeanServer
- Все суперинтерфейсы:
- MBeanServerConnection
- Все известные подинтерфейсы:
- MBeanServerForwarder
public interface MBeanServer extends MBeanServerConnection
Это интерфейс для управления MBean на стороне агента. Он содержит методы, необходимые для создания, регистрации и удаления MBean, а также методы доступа к зарегистрированным MBean. Это ключевой компонент инфраструктуры JMX.
Код пользователя обычно не реализует этот интерфейс. Вместо этого объект, реализующий этот интерфейс, получается с помощью одного из методов в классе MBeanServerFactory.
Каждый MBean, добавленный в сервер MBean, становится управляемым: его атрибуты и операции становятся удаленно доступными через подключенные к этому серверу MBean адаптеры/коннекторы. Java-объект не может быть зарегистрирован на сервере MBean, если он не является совместимым с JMX MBean.
Когда MBean регистрируется или удаляется на сервере MBean, генерируется уведомление MBeanServerNotification. Чтобы зарегистрировать объект в качестве слушателя уведомлений MBeanServerNotifications, необходимо вызвать метод сервера MBean addNotificationListener с ObjectName ObjectName делегата MBeanServerDelegate. Этот ObjectName:
JMImplementation:type=MBeanServerDelegate.
Объект, полученный из методов класса createMBeanServer или newMBeanServer класса MBeanServerFactory, применяет проверки безопасности к своим методам следующим образом.
Во-первых, если менеджер безопасности отсутствует (System.getSecurityManager() равен null), то реализация этого интерфейса может не производить никаких проверок.
Предполагая, что менеджер безопасности существует или что реализация всё равно выбирает выполнять проверки, проверки выполняются, как подробно описано ниже. Далее, и если не указано иное, className — это строка, возвращаемая методом MBeanInfo.getClassName() для целевого MBean.
Если проверка безопасности завершается неудачно, метод выбрасывает исключение SecurityException.
Для методов, которые могут выбросить исключение InstanceNotFoundException, это исключение выбрасывается для несуществующего MBean независимо от разрешений. Это связано с тем, что несуществующий MBean не имеет className.
-
Для метода
invokeразрешения вызывающего должны подразумеватьMBeanPermission(className, operationName, name, "invoke"). -
Для метода
getAttributeразрешения вызывающего должны подразумеватьMBeanPermission(className, attribute, name, "getAttribute"). -
Для метода
getAttributesразрешения вызывающего должны подразумеватьMBeanPermission(className, null, name, "getAttribute"). Кроме того, для каждого атрибута a вAttributeList, если разрешения вызывающего не подразумеваютMBeanPermission(className, a, name, "getAttribute"), сервер MBean будет вести себя так, как если бы этот атрибут не был в предоставленном списке. -
Для метода
setAttributeразрешения вызывающего должны подразумеватьMBeanPermission(className, attrName, name, "setAttribute"), гдеattrName— этоattribute.getName(). -
Для метода
setAttributesразрешения вызывающего должны подразумеватьMBeanPermission(className, null, name, "setAttribute"). Кроме того, для каждого атрибута a вAttributeList, если разрешения вызывающего не подразумеваютMBeanPermission(className, a, name, "setAttribute"), сервер MBean будет вести себя так, как если бы этот атрибут не был в предоставленном списке. -
Для методов
addNotificationListenerразрешения вызывающего должны подразумеватьMBeanPermission(className, null, name, "addNotificationListener"). -
Для методов
removeNotificationListenerразрешения вызывающего должны подразумеватьMBeanPermission(className, null, name, "removeNotificationListener"). -
Для метода
getMBeanInfoразрешения вызывающего должны подразумеватьMBeanPermission(className, null, name, "getMBeanInfo"). -
Для метода
getObjectInstanceразрешения вызывающего должны подразумеватьMBeanPermission(className, null, name, "getObjectInstance"). -
Для метода
isInstanceOfразрешения вызывающего должны подразумеватьMBeanPermission(className, null, name, "isInstanceOf"). -
Для метода
queryMBeansразрешения вызывающего должны подразумеватьMBeanPermission(null, null, null, "queryMBeans"). Кроме того, для каждого MBean n, соответствующегоname, если разрешения вызывающего не подразумеваютMBeanPermission(className, null, n, "queryMBeans"), сервер MBean будет вести себя так, как если бы этот MBean не существовал.Определенные элементы запроса выполняют операции на сервере MBean. Если у вызывающего отсутствуют необходимые разрешения для данного MBean, этот MBean не будет включён в результаты запроса. Стандартные элементы запроса, на которые это влияет, это
Query.attr(String),Query.attr(String,String)иQuery.classattr(). -
Для метода
queryNamesпроверки аналогичны проверкам дляqueryMBeans, за исключением того, что"queryNames"используется вместо"queryMBeans"в объектахMBeanPermission. Обратите внимание, что разрешение"queryMBeans"подразумевает соответствующее разрешение"queryNames". -
Для метода
getDomainsразрешения вызывающего должны подразумеватьMBeanPermission(null, null, null, "getDomains"). Кроме того, для каждого домена d в возвращаемом массиве, если разрешения вызывающего не подразумеваютMBeanPermission(null, null, new ObjectName("d:x=x"), "getDomains"), домен удаляется из массива. Здесьx=x— любая пара ключ=значение, необходимая для удовлетворения конструктора ObjectName, но не имеющая иного значения. -
Для метода
getClassLoaderразрешения вызывающего должны подразумеватьMBeanPermission(className, null, loaderName, "getClassLoader"). -
Для метода
getClassLoaderForразрешения вызывающего должны подразумеватьMBeanPermission(className, null, mbeanName, "getClassLoaderFor"). -
Для метода
getClassLoaderRepositoryразрешения вызывающего должны подразумеватьMBeanPermission(null, null, null, "getClassLoaderRepository"). -
Для устаревших
deserializeметодов требуемые разрешения такие же, как и для методов, которые их заменяют. -
Для методов
instantiateразрешения вызывающего должны подразумеватьMBeanPermission(className, null, null, "instantiate"), гдеclassName— имя класса, который должен быть создан. -
Для метода
registerMBeanразрешения вызывающего должны подразумеватьMBeanPermission(className, null, name, "registerMBean").Если проверка
MBeanPermissionуспешна, класс MBean проверяется на соответствие требованиям, проверяя, что егоProtectionDomainподразумеваетMBeanTrustPermission("register").Наконец, если аргумент
nameравен null, выполняется ещё одна проверкаMBeanPermissionс использованиемObjectName, возвращаемого методомMBeanRegistration.preRegister. -
Для методов
createMBeanразрешения вызывающего должны подразумевать разрешения, необходимые для эквивалентных методовinstantiateиregisterMBean. -
Для метода
unregisterMBeanразрешения вызывающего должны подразумеватьMBeanPermission(className, null, name, "unregisterMBean").
- Since:
- 1.5
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
addNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
Object handback) Добавляет слушателя к зарегистрированному MBean. |
void |
addNotificationListener(ObjectName name,
ObjectName listener,
NotificationFilter filter,
Object handback) Добавляет слушателя к зарегистрированному MBean. |
ObjectInstance |
createMBean(String className,
ObjectName name) Инициализирует и регистрирует MBean в сервере MBean. |
ObjectInstance |
createMBean(String className,
ObjectName name,
Object[] params,
String[] signature) Инициализирует и регистрирует MBean в сервере MBean. |
ObjectInstance |
createMBean(String className,
ObjectName name,
ObjectName loaderName) Инициализирует и регистрирует MBean в сервере MBean. |
ObjectInstance |
createMBean(String className,
ObjectName name,
ObjectName loaderName,
Object[] params,
String[] signature) Инициализирует и регистрирует MBean в сервере MBean. |
ObjectInputStream |
deserialize(ObjectName name,
byte[] data) Устаревшее. Используйте |
ObjectInputStream |
deserialize(String className,
byte[] data) Устаревшее. Используйте |
ObjectInputStream |
deserialize(String className,
ObjectName loaderName,
byte[] data) Устаревшее. Используйте |
Object |
getAttribute(ObjectName name,
String attribute) Получает значение определенного атрибута именованного MBean. |
AttributeList |
getAttributes(ObjectName name,
String[] attributes) Извлекает значения нескольких атрибутов именованного MBean. |
ClassLoader |
getClassLoader(ObjectName loaderName) Возвращает именованный |
ClassLoader |
getClassLoaderFor(ObjectName mbeanName) Возвращает |
ClassLoaderRepository |
getClassLoaderRepository() Возвращает ClassLoaderRepository для этого MBeanServer. |
String |
getDefaultDomain() Возвращает домен по умолчанию, используемый для именования MBean. |
String[] |
getDomains() Возвращает список доменов, в которых в настоящее время зарегистрирован любой MBean. |
Integer |
getMBeanCount() Возвращает количество зарегистрированных MBean в сервере MBean. |
MBeanInfo |
getMBeanInfo(ObjectName name) Этот метод обнаруживает атрибуты и операции, которые экспонирует MBean для управления. |
ObjectInstance |
getObjectInstance(ObjectName name) Получает |
Object |
instantiate(String className) Инициализирует объект, используя список всех загрузчиков классов, зарегистрированных в хранилище загрузчиков классов сервера MBean |
Object |
instantiate(String className,
Object[] params,
String[] signature) Инициализирует объект, используя список всех загрузчиков классов, зарегистрированных в сервере MBean |
Object |
instantiate(String className,
ObjectName loaderName) Инициализирует объект, используя указанный загрузчик классов по его |
Object |
instantiate(String className,
ObjectName loaderName,
Object[] params,
String[] signature) Инициализирует объект. |
Object |
invoke(ObjectName name,
String operationName,
Object[] params,
String[] signature) Вызывает операцию над MBean. |
boolean |
isInstanceOf(ObjectName name,
String className) Возвращает true, если указанный MBean является экземпляром указанного класса, в противном случае false. |
boolean |
isRegistered(ObjectName name) Проверяет, зарегистрирован ли MBean, идентифицируемый его именем объекта, в сервере MBean. |
Set<ObjectInstance> |
queryMBeans(ObjectName name,
QueryExp query) Получает MBeans, управляемые сервером MBean. |
Set<ObjectName> |
queryNames(ObjectName name,
QueryExp query) Получает имена MBeans, управляемых сервером MBean. |
ObjectInstance |
registerMBean(Object object,
ObjectName name) Регистрирует существующий объект как MBean в сервере MBean. |
void |
removeNotificationListener(ObjectName name,
NotificationListener listener) Удаляет слушателя из зарегистрированного MBean. |
void |
removeNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
Object handback) Удаляет слушателя из зарегистрированного MBean. |
void |
removeNotificationListener(ObjectName name,
ObjectName listener) Удаляет слушателя из зарегистрированного MBean. |
void |
removeNotificationListener(ObjectName name,
ObjectName listener,
NotificationFilter filter,
Object handback) Удаляет слушателя из зарегистрированного MBean. |
void |
setAttribute(ObjectName name,
Attribute attribute) Устанавливает значение определенного атрибута именованного MBean. |
AttributeList |
setAttributes(ObjectName name,
AttributeList attributes) Устанавливает значения нескольких атрибутов именованного MBean. |
void |
unregisterMBean(ObjectName name) Удаляет MBean из сервера MBean. |
Методы
createMBean
ObjectInstance createMBean(String className,
ObjectName name)
throws ReflectionException,
InstanceAlreadyExistsException,
MBeanRegistrationException,
MBeanException,
NotCompliantMBeanException Инициализирует и регистрирует MBean в сервере MBean. Сервер MBean будет использовать свой Default Loader
Repository для загрузки класса MBean. MBean ассоциируется с именем объекта. Если указанное имя объекта равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
Этот метод эквивалентен createMBean(className, name, (Object[]) null, (String[])
null).
Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.
- Определено в:
-
createMBeanв интерфейсеMBeanServerConnection - Параметры:
-
className- Имя класса MBean, подлежащего инициализации. -
name- Имя объекта MBean. Может быть null. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса вновь созданного MBean. Если содержащийсяObjectNameравенn, содержащееся имя Java-класса равно.getMBeanInfo(n).getClassName() - Исключения:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: имя класса, переданное в качестве параметра, равно null, имя объекта, переданное в качестве параметра, содержит шаблон или для MBean не указано ни одногоObjectName. -
RuntimeMBeanException- Если конструктор MBean или методыpreRegisterилиpostRegisterбросили исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методcreateMBeanбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean были успешны. В этом случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеError, методcreateMBeanбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean были успешны. В этом случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть брошеноpreRegister, в этом случае MBean не будет зарегистрирован. -
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызова конструктора MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean бросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean - См. также:
MBeanRegistration
createMBean
ObjectInstance createMBean(String className,
ObjectName name,
ObjectName loaderName)
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, имя объекта, переданное в качестве параметра, содержит шаблон или для MBean не указано ни одногоObjectName. -
RuntimeMBeanException- Если конструктор MBean или методыpreRegisterилиpostRegisterбросили исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методcreateMBeanбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean были успешны. В этом случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеError, методcreateMBeanбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean были успешны. В этом случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть брошеноpreRegister, в этом случае MBean не будет зарегистрирован. -
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызова конструктора MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean бросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере MBean. - См. также:
MBeanRegistration
createMBean
ObjectInstance createMBean(String className,
ObjectName name,
Object[] params,
String[] signature)
throws ReflectionException,
InstanceAlreadyExistsException,
MBeanRegistrationException,
MBeanException,
NotCompliantMBeanException Инициализирует и регистрирует MBean в сервере MBean. Сервер MBean будет использовать свой Default Loader
Repository для загрузки класса MBean. MBean ассоциируется с именем объекта. Если указанное имя объекта равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.
- Определено в:
-
createMBeanв интерфейсеMBeanServerConnection - Параметры:
-
className- Имя класса MBean, подлежащего инициализации. -
name- Имя объекта MBean. Может быть null. -
params- Массив, содержащий параметры конструктора, который необходимо вызвать. -
signature- Массив, содержащий сигнатуру конструктора, который необходимо вызвать. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса вновь созданного MBean. Если содержащийсяObjectNameравенn, содержащееся имя Java-класса равно.getMBeanInfo(n).getClassName() - Исключения:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: имя класса, переданное в качестве параметра, равно null, имя объекта, переданное в качестве параметра, содержит шаблон или для MBean не указано ни одногоObjectName. -
RuntimeMBeanException- Если конструктор MBean или методыpreRegisterилиpostRegisterбросили исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методcreateMBeanбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean были успешны. В этом случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеError, методcreateMBeanбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean были успешны. В этом случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть брошеноpreRegister, в этом случае MBean не будет зарегистрирован. -
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызова конструктора MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean бросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean - См. также:
MBeanRegistration
createMBean
ObjectInstance createMBean(String className,
ObjectName name,
ObjectName loaderName,
Object[] params,
String[] signature)
throws ReflectionException,
InstanceAlreadyExistsException,
MBeanRegistrationException,
MBeanException,
NotCompliantMBeanException,
InstanceNotFoundException Создаёт и регистрирует управляемый объект (MBean) в сервере управляемых объектов. Загрузчик классов, который будет использоваться, определяется по имени объекта. Имя объекта ассоциировано с управляемым объектом. Если имя объекта загрузчика не указано, будет использован загрузчик классов, который загрузил сервер управляемых объектов. Если имя объекта управляемого объекта, переданное в качестве параметра, равно null, управляемый объект должен предоставить своё собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
Если этот метод успешно создаёт управляемый объект, отправляется уведомление, как описано выше.
- Specified by:
-
createMBeanв интерфейсеMBeanServerConnection - Parameters:
-
className- Имя класса управляемого объекта, который необходимо создать. -
name- Имя объекта управляемого объекта. Может быть равно null. -
loaderName- Имя объекта загрузчика классов, который будет использоваться. -
params- Массив, содержащий параметры конструктора, который необходимо вызвать. -
signature- Массив, содержащий сигнатуру конструктора, который необходимо вызвать. - Returns:
- Объект
ObjectInstance, содержащийObjectNameи имя Java класса вновь созданного управляемого объекта. Если содержимоеObjectNameравноn, содержимое имени Java класса равно.getMBeanInfo(n).getClassName() - Throws:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: переданное в качестве параметра имя класса равно null, переданное в качестве параметра имя объекта содержит шаблон или не указано имя объекта для управляемого объекта. -
RuntimeMBeanException- Конструктор управляемого объекта или его методpreRegisterилиpostRegisterбросил исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) управляемого объекта бросил исключениеRuntimeException, методcreateMBeanбросит исключениеRuntimeMBeanException, хотя создание и регистрация управляемого объекта успешно завершились. В этом случае управляемый объект будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreRegister, в этом случае управляемый объект не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) управляемого объекта бросил исключениеError, методcreateMBeanбросит исключениеRuntimeErrorException, хотя создание и регистрация управляемого объекта успешно завершились. В этом случае управляемый объект будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть брошеноpreRegister, в этом случае управляемый объект не будет зарегистрирован. -
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызова конструктора управляемого объекта. -
InstanceAlreadyExistsException- Управляемый объект уже находится под управлением сервера управляемых объектов. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) управляемого объекта бросил исключение. Управляемый объект не будет зарегистрирован. -
MBeanException- Конструктор управляемого объекта бросил исключение. -
NotCompliantMBeanException- Этот класс не является совместимым с JMX управляемым объектом. -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере управляемых объектов. - See Also:
MBeanRegistration
registerMBean
ObjectInstance registerMBean(Object object,
ObjectName name)
throws InstanceAlreadyExistsException,
MBeanRegistrationException,
NotCompliantMBeanException Регистрирует существующий объект как управляемый объект (MBean) на сервере управляемых объектов. Если имя объекта равно null, управляемый объект должен предоставить своё собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
Если этот метод успешно регистрирует управляемый объект, отправляется уведомление, как описано выше.
- Parameters:
-
object- Управляемый объект, который необходимо зарегистрировать как управляемый объект. -
name- Имя объекта управляемого объекта. Может быть равно null. - Returns:
- Объект
ObjectInstance, содержащийObjectNameи имя Java класса вновь зарегистрированного управляемого объекта. Если содержимоеObjectNameравноn, содержимое имени Java класса равно.getMBeanInfo(n).getClassName() - Throws:
-
InstanceAlreadyExistsException- Управляемый объект уже находится под управлением сервера управляемых объектов. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) управляемого объекта бросил исключение. Управляемый объект не будет зарегистрирован. -
RuntimeMBeanException- Если методpostRegister(интерфейсMBeanRegistration) управляемого объекта бросил исключениеRuntimeException, методregisterMBeanбросит исключениеRuntimeMBeanException, хотя регистрация управляемого объекта прошла успешно. В этом случае управляемый объект будет фактически зарегистрирован, даже если методregisterMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreRegister, в этом случае управляемый объект не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) управляемого объекта бросил исключениеError, методregisterMBeanбросит исключениеRuntimeErrorException, хотя регистрация управляемого объекта прошла успешно. В этом случае управляемый объект будет фактически зарегистрирован, даже если методregisterMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть брошеноpreRegister, в этом случае управляемый объект не будет зарегистрирован. -
NotCompliantMBeanException- Этот объект не является совместимым с JMX управляемым объектом. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: переданный в качестве параметра объект равен null или не указано имя объекта. - See Also:
MBeanRegistration
unregisterMBean
void unregisterMBean(ObjectName name)
throws InstanceNotFoundException,
MBeanRegistrationException Удаляет управляемый объект (MBean) из сервера управляемых объектов. Управляемый объект определяется по его имени объекта. После вызова метода к управляемому объекту больше нельзя получить доступ по его имени объекта.
Если этот метод успешно удаляет управляемый объект, отправляется уведомление, как описано выше.
- Specified by:
-
unregisterMBeanв интерфейсеMBeanServerConnection - Parameters:
-
name- Имя объекта управляемого объекта, который необходимо удалить. - Throws:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре равно null или управляемый объект, который вы пытаетесь удалить, является управляемым объектомMBeanServerDelegate. -
RuntimeMBeanException- Если методpostDeregister(интерфейсMBeanRegistration) управляемого объекта бросил исключениеRuntimeException, методunregisterMBeanбросит исключениеRuntimeMBeanException, хотя удаление управляемого объекта прошло успешно. В этом случае управляемый объект будет фактически удалён, даже если методunregisterMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreDeregister, в этом случае управляемый объект останется зарегистрированным. -
RuntimeErrorException- Если методpostDeregister(интерфейсMBeanRegistration) управляемого объекта бросил исключениеError, методunregisterMBeanбросит исключениеRuntimeErrorException, хотя удаление управляемого объекта прошло успешно. В этом случае управляемый объект будет фактически удалён, даже если методunregisterMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreDeregister, в этом случае управляемый объект останется зарегистрированным. -
InstanceNotFoundException- Управляемый объект, указанный в качестве параметра, не зарегистрирован на сервере управляемых объектов. -
MBeanRegistrationException- Метод preDeregister (интерфейсMBeanRegistration) управляемого объекта бросил исключение. - See Also:
MBeanRegistration
getObjectInstance
ObjectInstance getObjectInstance(ObjectName name)
throws InstanceNotFoundException Описание скопировано из интерфейса: MBeanServerConnection
Получение ObjectInstance для данного управляемого объекта, зарегистрированного на сервере управляемых объектов.
- Specified by:
-
getObjectInstanceв интерфейсеMBeanServerConnection - Parameters:
-
name- Имя объекта управляемого объекта. - Returns:
- Объект
ObjectInstance, связанный с управляемым объектом, заданным параметром name. СодержимоеObjectNameравноname, а имя класса равно.getMBeanInfo(name).getClassName() - Throws:
-
InstanceNotFoundException- Управляемый объект, указанный в качестве параметра, не зарегистрирован в сервере управляемых объектов.
queryMBeans
Set<ObjectInstance> queryMBeans(ObjectName name,
QueryExp query) Получение управляемых объектов, контролируемых сервером управляемых объектов. Этот метод позволяет получить следующее: все управляемые объекты, набор управляемых объектов, указанный с помощью сопоставления по шаблону имени объекта и/или выражения запроса, конкретный управляемый объект. При значении null для имени объекта или при отсутствии указанных доменных и ключевых свойств, выбираются все объекты (и отфильтровываются, если задан запрос). Возвращает набор объектов ObjectInstance (содержащих ObjectName и имя класса Java) для выбранных управляемых объектов.
- Specified by:
-
queryMBeansв интерфейсеMBeanServerConnection - Parameters:
-
name- Шаблон имени объекта, определяющий управляемые объекты, которые необходимо получить. Если null или не указаны доменные и ключевые свойства, будут получены все зарегистрированные управляемые объекты. -
query- Выражение запроса, которое необходимо применить для выбора управляемых объектов. Если null, выражение запроса не будет применено для выбора управляемых объектов. - Returns:
- Набор, содержащий объекты
ObjectInstanceдля выбранных управляемых объектов. Если ни один управляемый объект не соответствует запросу, возвращается пустой список. - Throws:
RuntimeOperationsException
queryNames
Set<ObjectName> queryNames(ObjectName name,
QueryExp query) Получает имена MBean, управляемых сервером MBean. Этот метод позволяет получить следующее: имена всех MBean, имена набора MBean, указанные с помощью сопоставления по шаблону на ObjectName и/или выражение запроса, конкретное имя MBean (эквивалентно проверке регистрации MBean). Если имя объекта null или не указаны свойства домена и ключа, выбираются все объекты (и фильтруются, если задан запрос). Возвращает набор ObjectNames для выбранных MBean.
- Определено в:
-
queryNamesв интерфейсеMBeanServerConnection - Параметры:
-
name- Шаблон имени объекта, идентифицирующий имена MBean, которые нужно получить. Если null или не указаны свойства домена и ключа, будут получены имена всех зарегистрированных MBean. -
query- Выражение запроса, которое должно применяться для выбора MBean. Если null, то для выбора MBean не будет применяться никакого выражения запроса. - Возвращает:
- Набор, содержащий ObjectNames для выбранных MBean. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
- Выбрасывает:
RuntimeOperationsException
isRegistered
boolean isRegistered(ObjectName name)
Описание скопировано из интерфейса: MBeanServerConnection
Проверяет, зарегистрирован ли MBean, идентифицированный своим именем объекта, на сервере MBean.
- Определено в:
-
isRegisteredв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя объекта MBean, который нужно проверить. - Возвращает:
- True, если MBean уже зарегистрирован на сервере MBean, false в противном случае.
- Выбрасывает:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null.
getMBeanCount
Integer getMBeanCount()
Возвращает количество зарегистрированных MBean на сервере MBean.
- Определено в:
-
getMBeanCountв интерфейсеMBeanServerConnection - Возвращает:
- количество зарегистрированных MBean, обернутое в Integer. Если разрешения вызывающего ограничены, это число может быть больше числа MBean, к которым у вызывающего есть доступ.
getAttribute
Object getAttribute(ObjectName name,
String attribute)
throws MBeanException,
AttributeNotFoundException,
InstanceNotFoundException,
ReflectionException Описание скопировано из интерфейса: MBeanServerConnection
Получает значение определенного атрибута именованного MBean. MBean идентифицируется своим именем объекта.
- Определено в:
-
getAttributeв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя объекта MBean, из которого нужно получить атрибут. -
attribute- Строка, определяющая имя атрибута, который нужно получить. - Возвращает:
- Значение полученного атрибута.
- Выбрасывает:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибут в параметре равен null. -
MBeanException- Оборачивает исключение, сгенерированное методом getter MBean. -
AttributeNotFoundException- Указанный атрибут недоступен в MBean. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
ReflectionException- Оборачиваетjava.lang.Exception, сгенерированное при попытке вызова сеттера. - См. также:
MBeanServerConnection.setAttribute(javax.management.ObjectName, javax.management.Attribute)
getAttributes
AttributeList getAttributes(ObjectName name,
String[] attributes)
throws InstanceNotFoundException,
ReflectionException Описание скопировано из интерфейса: MBeanServerConnection
Получает значения нескольких атрибутов именованного MBean. MBean идентифицируется своим именем объекта.
Если один или несколько атрибутов не могут быть получены по какой-либо причине, они будут пропущены из возвращаемого AttributeList. Вызывающий должен проверить, что список имеет тот же размер, что и attributes массив. Чтобы узнать, что помешало получить определенный атрибут, вызовите getAttribute для этого атрибута.
Вот пример вызова этого метода и проверки того, что он успешно получил все запрошенные атрибуты:
String[] attrNames = ...;
AttributeList list = mbeanServerConnection.getAttributes(objectName, attrNames);
if (list.size() == attrNames.length)
System.out.println("All attributes were retrieved successfully");
else {
List<String> missing = new ArrayList<String>(Arrays.asList(attrNames));
for (Attribute a : list.asList())
missing.remove(a.getName());
System.out.println("Did not retrieve: " + missing);
}
- Определено в:
-
getAttributesв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя объекта MBean, из которого извлекаются атрибуты. -
attributes- Список атрибутов, которые нужно получить. - Возвращает:
- Список полученных атрибутов.
- Выбрасывает:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
ReflectionException- Произошло исключение при попытке вызвать метод getAttributes у динамического MBean. - См. также:
MBeanServerConnection.setAttributes(javax.management.ObjectName, javax.management.AttributeList)
setAttribute
void setAttribute(ObjectName name,
Attribute attribute)
throws InstanceNotFoundException,
AttributeNotFoundException,
InvalidAttributeValueException,
MBeanException,
ReflectionException Описание скопировано из интерфейса: MBeanServerConnection
Устанавливает значение определенного атрибута именованного MBean. MBean идентифицируется своим именем объекта.
- Определено в:
-
setAttributeв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, в котором нужно установить атрибут. -
attribute- Идентификатор атрибута, который нужно установить, и значение, на которое нужно установить. - Выбрасывает:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибут в параметре равен null. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
AttributeNotFoundException- Указанный атрибут недоступен в MBean. -
InvalidAttributeValueException- Указанное значение для атрибута недействительно. -
MBeanException- Оборачивает исключение, сгенерированное методом setter MBean. -
ReflectionException- Оборачиваетjava.lang.Exceptionпри попытке вызова сеттера. - См. также:
MBeanServerConnection.getAttribute(javax.management.ObjectName, java.lang.String)
setAttributes
AttributeList setAttributes(ObjectName name,
AttributeList attributes)
throws InstanceNotFoundException,
ReflectionException Описание скопировано из интерфейса: MBeanServerConnection
Устанавливает значения нескольких атрибутов именованного MBean. MBean идентифицируется своим именем объекта.
Если один или несколько атрибутов не могут быть установлены по какой-либо причине, они будут пропущены из возвращаемого AttributeList. Вызывающий должен проверить, что входной AttributeList имеет тот же размер, что и выходной. Чтобы узнать, что помешало установить определенный атрибут, обычно можно вызвать setAttribute для этого атрибута, хотя это не гарантируется. (Например, значения двух атрибутов могут быть отклонены из-за несовместимости. Установка одного из них в одиночку может быть разрешена.)
Вот пример вызова этого метода и проверки того, что он успешно установил все запрошенные атрибуты:
AttributeList inputAttrs = ...;
AttributeList outputAttrs = mbeanServerConnection.setAttributes(objectName, inputAttrs);
if (inputAttrs.size() == outputAttrs.size())
System.out.println("All attributes were set successfully");
else {
List<String> missing = new ArrayList<String>();
for (Attribute a : inputAttrs.asList())
missing.add(a.getName());
for (Attribute a : outputAttrs.asList())
missing.remove(a.getName());
System.out.println("Did not set: " + missing);
}
- Определено в:
-
setAttributesв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя объекта MBean, в котором нужно установить атрибуты. -
attributes- Список атрибутов: идентификация атрибутов, которые нужно установить, и значения, на которые нужно установить. - Возвращает:
- Список атрибутов, которые были установлены, вместе с их новыми значениями.
- Выбрасывает:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
ReflectionException- Произошло исключение при попытке вызвать метод getAttributes у динамического MBean. - См. также:
MBeanServerConnection.getAttributes(javax.management.ObjectName, java.lang.String[])
invoke
Object invoke(ObjectName name,
String operationName,
Object[] params,
String[] signature)
throws InstanceNotFoundException,
MBeanException,
ReflectionException Описание скопировано из интерфейса: MBeanServerConnection
Вызывает операцию над MBean.
Из-за необходимости signature для различения потенциально перегруженных операций, намного проще вызывать операции через прокси MBean там, где это возможно. Например, предположим, у вас есть интерфейс Standard MBean такого рода:
public interface FooMBean {
public int countMatches(String[] patterns, boolean ignoreCase);
} Операцию countMatches можно вызвать следующим образом:
String[] myPatterns = ...;
int count = (Integer) mbeanServerConnection.invoke(
objectName,
"countMatches",
new Object[] {myPatterns, true},
new String[] {String[].class.getName(), boolean.class.getName()}); Или же её можно вызвать через прокси следующим образом:
String[] myPatterns = ...;
FooMBean fooProxy = JMX.newMBeanProxy(
mbeanServerConnection, objectName, FooMBean.class);
int count = fooProxy.countMatches(myPatterns, true);
- Определено в:
-
invokeв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя объекта MBean, на котором нужно вызвать метод. -
operationName- Имя операции, которую нужно вызвать. -
params- Массив, содержащий параметры, которые нужно установить при вызове операции. -
signature- Массив, содержащий сигнатуру операции, массив имён классов в формате, возвращаемомClass.getName(). Объекты классов будут загружены с помощью того же загрузчика классов, что и тот, который использовался для загрузки MBean, на котором была вызвана операция. - Возвращает:
- Объект, возвращённый операцией, представляющий результат вызова операции над указанным MBean.
- Выбрасывает:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
MBeanException- Оборачивает исключение, сгенерированное вызываемым методом MBean. -
ReflectionException- Оборачиваетjava.lang.Exceptionпри попытке вызвать метод.
getDefaultDomain
String getDefaultDomain()
Описание скопировано из интерфейса: MBeanServerConnection
Возвращает имя домена по умолчанию, используемое для именования MBean. Имя домена по умолчанию используется как часть ObjectName MBean, если пользователь не указывает домен.
- Определено в:
-
getDefaultDomainв интерфейсеMBeanServerConnection - Возвращает:
- домен по умолчанию.
getDomains
String[] getDomains()
Описание скопировано из интерфейса: MBeanServerConnection
Возвращает список доменов, в которых в настоящее время зарегистрирован любой MBean. Строка находится в возвращаемом массиве тогда и только тогда, когда существует хотя бы один MBean, зарегистрированный с ObjectName, чья getDomain() равна этой строке. Порядок строк в возвращаемом массиве не определен.
- Указано в:
-
getDomainsв интерфейсеMBeanServerConnection - Возвращает:
- список доменов.
addNotificationListener
void addNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
Object handback)
throws InstanceNotFoundException Добавляет прослушиватель к зарегистрированному MBean. Уведомления, отправляемые MBean, будут переадресованы прослушивателю.
Если источником уведомления является ссылка на объект MBean, сервер MBean заменит его ObjectName этого MBean. В противном случае источник остается неизменным.- Указано в:
-
addNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, к которому следует добавить прослушиватель. -
listener- Объект прослушивателя, который будет обрабатывать уведомления, отправляемые зарегистрированным MBean. -
filter- Объект фильтра. Если filter имеет значение null, фильтрация не будет выполняться перед обработкой уведомлений. -
handback- Контекст, который будет отправлен прослушивателю при отправке уведомления. - Исключения:
-
InstanceNotFoundException- Указанное имя MBean не соответствует ни одному из зарегистрированных MBean. - См. также:
-
MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener),MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
addNotificationListener
void addNotificationListener(ObjectName name,
ObjectName listener,
NotificationFilter filter,
Object handback)
throws InstanceNotFoundException Добавляет прослушиватель к зарегистрированному MBean.
Уведомление, отправленное MBean, будет переадресовано MBeanServer прослушивателю. Если источником уведомления является ссылка на объект MBean, сервер MBean заменит его ObjectName этого MBean. В противном случае источник остается неизменным.
Объект прослушивателя, который получает уведомления, это тот, который зарегистрирован с заданным именем в момент вызова этого метода. Даже если он будет позже отменен, он будет продолжать получать уведомления.
- Указано в:
-
addNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, к которому следует добавить прослушиватель. -
listener- Имя объекта прослушивателя, который будет обрабатывать уведомления, отправляемые зарегистрированным MBean. -
filter- Объект фильтра. Если filter имеет значение null, фильтрация не будет выполняться перед обработкой уведомлений. -
handback- Контекст, который будет отправлен прослушивателю при отправке уведомления. - Исключения:
-
RuntimeOperationsException- ОборачиваетIllegalArgumentException. MBean с именемlistenerсуществует, но не реализует интерфейсNotificationListener. -
InstanceNotFoundException- Имя MBean прослушивателя уведомлений или передатчика уведомлений не соответствует ни одному из зарегистрированных MBean. - См. также:
-
MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName),MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
removeNotificationListener
void removeNotificationListener(ObjectName name,
ObjectName listener)
throws InstanceNotFoundException,
ListenerNotFoundException Описание скопировано из интерфейса: MBeanServerConnection
Удаляет прослушиватель из зарегистрированного MBean.
Если прослушиватель зарегистрирован более одного раза, возможно, с различными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.
- Указано в:
-
removeNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, из которого следует удалить прослушиватель. -
listener- Имя объекта прослушивателя, который необходимо удалить. - Исключения:
-
InstanceNotFoundException- Указанное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Прослушиватель не зарегистрирован в MBean. - См. также:
MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
removeNotificationListener
void removeNotificationListener(ObjectName name,
ObjectName listener,
NotificationFilter filter,
Object handback)
throws InstanceNotFoundException,
ListenerNotFoundException Описание скопировано из интерфейса: MBeanServerConnection
Удаляет прослушиватель из зарегистрированного MBean.
MBean должен иметь прослушиватель, точно соответствующий заданным параметрам listener, filter и handback. Если таких прослушивателей более одного, удаляется только один.
Параметры filter и handback могут иметь значение null тогда и только тогда, когда они имеют значение null в прослушивателе, который необходимо удалить.
- Указано в:
-
removeNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, из которого следует удалить прослушиватель. -
listener- Имя объекта прослушивателя, который необходимо удалить. -
filter- Фильтр, который был указан при добавлении прослушивателя. -
handback- Обратный вызов, который был указан при добавлении прослушивателя. - Исключения:
-
InstanceNotFoundException- Указанное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Прослушиватель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и обратным вызовом. - См. также:
MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
removeNotificationListener
void removeNotificationListener(ObjectName name,
NotificationListener listener)
throws InstanceNotFoundException,
ListenerNotFoundException Описание скопировано из интерфейса: MBeanServerConnection
Удаляет прослушиватель из зарегистрированного MBean.
Если прослушиватель зарегистрирован более одного раза, возможно, с различными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.
- Указано в:
-
removeNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, из которого следует удалить прослушиватель. -
listener- Прослушиватель, который необходимо удалить. - Исключения:
-
InstanceNotFoundException- Указанное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Прослушиватель не зарегистрирован в MBean. - См. также:
MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
removeNotificationListener
void removeNotificationListener(ObjectName name,
NotificationListener listener,
NotificationFilter filter,
Object handback)
throws InstanceNotFoundException,
ListenerNotFoundException Описание скопировано из интерфейса: MBeanServerConnection
Удаляет прослушиватель из зарегистрированного MBean.
MBean должен иметь прослушиватель, точно соответствующий заданным параметрам listener, filter и handback. Если таких прослушивателей более одного, удаляется только один.
Параметры filter и handback могут иметь значение null тогда и только тогда, когда они имеют значение null в прослушивателе, который необходимо удалить.
- Указано в:
-
removeNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, из которого следует удалить прослушиватель. -
listener- Прослушиватель, который необходимо удалить. -
filter- Фильтр, который был указан при добавлении прослушивателя. -
handback- Обратный вызов, который был указан при добавлении прослушивателя. - Исключения:
-
InstanceNotFoundException- Указанное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Прослушиватель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и обратным вызовом. - См. также:
MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
getMBeanInfo
MBeanInfo getMBeanInfo(ObjectName name)
throws InstanceNotFoundException,
IntrospectionException,
ReflectionException Описание скопировано из интерфейса: MBeanServerConnection
Этот метод определяет атрибуты и операции, которые MBean предоставляет для управления.
- Указано в:
-
getMBeanInfoв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean для анализа - Возвращает:
- Экземпляр
MBeanInfo, позволяющий получать все атрибуты и операции этого MBean. - Исключения:
-
InstanceNotFoundException- Указанный MBean не найден. -
IntrospectionException- Произошла ошибка во время интроспекции. -
ReflectionException- Произошла ошибка при попытке вызвать getMBeanInfo динамического MBean.
isInstanceOf
boolean isInstanceOf(ObjectName name,
String className)
throws InstanceNotFoundException Описание скопировано из интерфейса: MBeanServerConnection
Возвращает true, если указанный MBean является экземпляром указанного класса, false в противном случае.
Если name не является именем MBean, этот метод вызывает исключение InstanceNotFoundException.
В противном случае, пусть
X будет MBean с именем name,
L будет загрузчиком классов X,
N будет именем класса в MBeanInfo X.
Если N равно className, результат true.
В противном случае, если L успешно загружает className и X является экземпляром этого класса, результат true.
В противном случае, если L успешно загружает как N, так и className, и второй класс присваивается из первого, результат true.
В противном случае, результат false.
- Указано в:
-
isInstanceOfв интерфейсеMBeanServerConnection - Параметры:
-
name-ObjectNameMBean. -
className- имя класса. - Возвращает:
- true, если указанный MBean является экземпляром указанного класса в соответствии с правилами выше, false в противном случае.
- Исключения:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован в сервере MBean. - См. также:
Class.isInstance(java.lang.Object)
instantiate
Object instantiate(String className)
throws ReflectionException,
MBeanException Создает объект, используя список всех загрузчиков классов, зарегистрированных в Class Loader
Repository сервера MBean. Класс объекта должен иметь открытый конструктор. Этот метод возвращает ссылку на вновь созданный объект. Вновь созданный объект не зарегистрирован в сервере MBean.
Этот метод эквивалентен instantiate(className, (Object[]) null, (String[]) null).
- Параметры:
-
className- имя класса объекта, который должен быть создан. - Возвращает:
- Вновь созданный объект.
- Исключения:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызвать конструктор объекта. -
MBeanException- Конструктор объекта вызвал исключение -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Переданное в параметре имя класса равно null.
instantiate
Object instantiate(String className,
ObjectName loaderName)
throws ReflectionException,
MBeanException,
InstanceNotFoundException Создает объект, используя загрузчик классов, указанный его ObjectName. Если имя загрузчика равно null, будет использоваться ClassLoader, который загрузил сервер MBean. Класс объекта должен иметь открытый конструктор. Этот метод возвращает ссылку на вновь созданный объект. Вновь созданный объект не зарегистрирован в сервере MBean.
Этот метод эквивалентен instantiate(className, loaderName, (Object[]) null, (String[])
null).
- Параметры:
-
className- имя класса MBean, который должен быть создан. -
loaderName- имя объекта загрузчика классов, который должен быть использован. - Возвращает:
- Вновь созданный объект.
- Исключения:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызвать конструктор объекта. -
MBeanException- Конструктор объекта вызвал исключение. -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в MBeanServer. -
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, будет использоваться ClassLoader, который загрузил сервер MBean. Класс объекта должен иметь открытый конструктор. Вызов возвращает ссылку на вновь созданный объект. Вновь созданный объект не зарегистрирован в сервере MBean.
- Параметры:
-
className- имя класса объекта, который должен быть создан. -
params- массив, содержащий параметры конструктора, который должен быть вызван. -
signature- массив, содержащий сигнатуру конструктора, который должен быть вызван. -
loaderName- имя объекта загрузчика классов, который должен быть использован. - Возвращает:
- Вновь созданный объект.
- Исключения:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызвать конструктор объекта. -
MBeanException- Конструктор объекта вызвал исключение -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере MBean. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Переданное в параметре имя класса равно null.
deserialize
@Deprecated
ObjectInputStream deserialize(ObjectName name,
byte[] data)
throws InstanceNotFoundException,
OperationsException Устарело. Используйте getClassLoaderFor для получения соответствующего загрузчика классов для десериализации.
Десериализует массив байтов в контексте загрузчика классов MBean.
- Параметры:
-
name- имя MBean, чей загрузчик классов должен использоваться для десериализации. -
data- массив байтов, который должен быть десериализован. - Возвращает:
- Десериализованный поток объектов.
- Исключения:
-
InstanceNotFoundException- Указанный MBean не найден. -
OperationsException- Любые обычные исключения, связанные с вводом/выводом.
deserialize
@Deprecated
ObjectInputStream deserialize(String className,
byte[] data)
throws OperationsException,
ReflectionException Устарело. Используйте getClassLoaderRepository() для получения хранилища загрузчиков классов и используйте его для десериализации.
Десериализует массив байтов в контексте заданного загрузчика классов MBean. Загрузчик классов находится путем загрузки класса className через Class Loader
Repository. Загрузчик классов результирующего класса является тем, который нужно использовать.
- Параметры:
-
className- имя класса, чей загрузчик классов должен использоваться для десериализации. -
data- массив байтов, который должен быть десериализован. - Возвращает:
- Десериализованный поток объектов.
- Исключения:
-
OperationsException- Любые обычные исключения, связанные с вводом/выводом. -
ReflectionException- Указанный класс не может быть загружен хранилищем загрузчиков классов
deserialize
@Deprecated
ObjectInputStream deserialize(String className,
ObjectName loaderName,
byte[] data)
throws InstanceNotFoundException,
OperationsException,
ReflectionException Устарело. Используйте getClassLoader для получения загрузчика классов для десериализации.
Десериализует массив байтов в контексте заданного загрузчика классов MBean. Загрузчик классов — это тот, который загрузил класс с именем "className". Указано имя загрузчика классов, который должен использоваться для загрузки указанного класса. Если null, будет использоваться загрузчик классов сервера MBean.
- Параметры:
-
className- имя класса, чей загрузчик классов должен использоваться для десериализации. -
data- массив байтов, который должен быть десериализован. -
loaderName- имя загрузчика классов, который должен использоваться для загрузки указанного класса. Если null, будет использоваться загрузчик классов сервера MBean. - Возвращает:
- Десериализованный поток объектов.
- Исключения:
-
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- Имя объекта ClassLoader. Может быть null, в этом случае возвращается собственный ClassLoader сервера MBean. - Возвращает:
- Искомый ClassLoader. Если l — фактический ClassLoader с этим именем, а r — возвращаемое значение, то либо:
- r идентичен l; или
- результат r
.loadClass(s)такой же, как l.loadClass(s)для любой строки s.
- Выбрасывает:
-
InstanceNotFoundException- если искомый ClassLoader не найден.
getClassLoaderRepository
ClassLoaderRepository getClassLoaderRepository()
Возвращает ClassLoaderRepository для данного сервера MBean.
- Возвращает:
- ClassLoaderRepository для данного сервера MBean.
© 1993, 2020, 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.