Интерфейс 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 |
Добавляет слушателя к зарегистрированному 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 |
Создает объект, используя список всех загрузчиков классов, зарегистрированных в хранилище загрузчиков классов сервера MBean Class Loader
Repository. |
Object |
instantiate |
Создает объект, используя список всех загрузчиков классов, зарегистрированных в сервере MBean Class Loader
Repository. |
Object |
instantiate |
Создает объект, используя указанный загрузчик классов по его ObjectName. |
Object |
instantiate |
Создает объект. |
Object |
invoke |
Вызывает операцию на MBean. |
boolean |
isInstanceOf |
Возвращает true, если указанный MBean является экземпляром указанного класса, в противном случае false. |
boolean |
isRegistered |
Проверяет, зарегистрирован ли MBean, идентифицированный по имени объекта, в сервере MBean. |
Set<ObjectInstance> |
queryMBeans |
Получает MBean, управляемые сервером MBean. |
Set<ObjectName> |
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параметра содержит шаблон или имяObjectNameдля MBean не указано. -
RuntimeMBeanException- Если конструктор MBean или его методыpreRegisterилиpostRegisterвыбросили исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean выбросил исключениеRuntimeException, методcreateMBeanвыбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет зарегистрирован, даже если методcreateMBeanвыбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть выброшеноpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean выбросил исключениеError, методcreateMBeanвыбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет зарегистрирован, даже если методcreateMBeanвыбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть выброшеноpreRegister, в этом случае MBean не будет зарегистрирован. -
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, возникшие при попытке вызова конструктора MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean выбросил исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean выбросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean - См. также:
createMBean
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
Инициализирует и регистрирует MBean в сервере MBean. Используемый загрузчик классов определяется по имени объекта. MBean ассоциируется с именем объекта. Если имя объекта загрузчика равно null, используется загрузчик классов, который загрузил сервер MBean. Если имя объекта MBean равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
Этот метод эквивалентен методу createMBean(className, name, loaderName, (Object[]) null,
(String[]) null).
Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.
- Определено в:
-
createMBeanв интерфейсеMBeanServerConnection - Параметры:
-
className- Имя класса MBean, который необходимо создать. -
name- Имя объекта MBean. Может быть null. -
loaderName- Имя объекта загрузчика классов, который необходимо использовать. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса недавно созданного MBean. Если содержимоеObjectNameравноn, то содержимое имени Java-класса равно.getMBeanInfo(n).getClassName() - Исключения:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: имя переданного класса равно null, имяObjectNameпараметра содержит шаблон или имяObjectNameдля MBean не указано. -
RuntimeMBeanException- Если конструктор MBean или его методыpreRegisterилиpostRegisterвыбросили исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean выбросил исключениеRuntimeException, методcreateMBeanвыбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет зарегистрирован, даже если методcreateMBeanвыбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть выброшеноpreRegister, в этом случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean выбросил исключениеError, методcreateMBeanвыбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean успешно завершились. В таком случае MBean будет зарегистрирован, даже если методcreateMBeanвыбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть выброшеноpreRegister, в этом случае MBean не будет зарегистрирован. -
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, возникшие при попытке вызова конструктора MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean выбросил исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean выбросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере MBean. - См. также:
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- Массив, содержащий сигнатуру вызываемого конструктора. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса только что инициализированного MBean. Если содержащийсяObjectNameравенn, содержащееся имя Java-класса равно.getMBeanInfo(n).getClassName() - Исключения:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Переданное в параметре className равно null, переданное в параметреObjectNameсодержит шаблон или для MBean не указано ни одногоObjectName. -
RuntimeMBeanException- Если конструктор MBean или методpreRegisterилиpostRegisterбросил исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методcreateMBeanбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreRegister, в таком случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеError, методcreateMBeanбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть брошеноpreRegister, в таком случае MBean не будет зарегистрирован. -
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызвать конструктор MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean бросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean - См. также:
createMBean
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
Инициализирует и регистрирует MBean в сервере MBean. Класс загрузчик определяется по имени объекта. MBean ассоциируется с именем объекта. Если имя объекта загрузчика не указано, используется ClassLoader, который загрузил сервер MBean. Если переданное имя объекта MBean равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
Если этот метод успешно создаёт MBean, отправляется уведомление, как описано выше.
- Определено в:
-
createMBeanв интерфейсеMBeanServerConnection - Параметры:
-
className- Имя класса MBean, который необходимо инициализировать. -
name- Имя объекта MBean. Может быть null. -
loaderName- Имя объекта загрузчика класса. -
params- Массив, содержащий параметры вызываемого конструктора. -
signature- Массив, содержащий сигнатуру вызываемого конструктора. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса только что инициализированного MBean. Если содержащийсяObjectNameравенn, содержащееся имя Java-класса равно.getMBeanInfo(n).getClassName() - Исключения:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Переданное в параметре className равно null, переданное в параметреObjectNameсодержит шаблон или для MBean не указано ни одногоObjectName. -
RuntimeMBeanException- Конструктор MBean или его методыpreRegisterилиpostRegisterбросили исключениеRuntimeException. Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методcreateMBeanбросит исключениеRuntimeMBeanException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreRegister, в таком случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеError, методcreateMBeanбросит исключениеRuntimeErrorException, хотя создание и регистрация MBean прошли успешно. В таком случае MBean будет фактически зарегистрирован, даже если методcreateMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть брошеноpreRegister, в таком случае MBean не будет зарегистрирован. -
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exception, произошедшие при попытке вызвать конструктор MBean. -
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован. -
MBeanException- Конструктор MBean бросил исключение -
NotCompliantMBeanException- Этот класс не является совместимым с JMX MBean -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере MBean. - См. также:
registerMBean
ObjectInstance registerMBean(Object object, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException
Регистрирует существующий объект в качестве MBean на сервере MBean. Если указанное имя объекта равно null, MBean должен предоставить собственное имя, реализовав интерфейс MBeanRegistration и вернув имя из метода preRegister.
Если этот метод успешно регистрирует MBean, отправляется уведомление, как описано выше.
- Параметры:
-
object- MBean, который необходимо зарегистрировать. -
name- Имя объекта MBean. Может быть null. - Возвращает:
- Объект
ObjectInstance, содержащийObjectNameи имя Java-класса только что зарегистрированного MBean. Если содержащийсяObjectNameравенn, содержащееся имя Java-класса равно.getMBeanInfo(n).getClassName() - Исключения:
-
InstanceAlreadyExistsException- MBean уже находится под управлением сервера MBean. -
MBeanRegistrationException- МетодpreRegister(интерфейсMBeanRegistration) MBean бросил исключение. MBean не будет зарегистрирован. -
RuntimeMBeanException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеRuntimeException, методregisterMBeanбросит исключениеRuntimeMBeanException, хотя регистрация MBean прошла успешно. В таком случае MBean будет фактически зарегистрирован, даже если методregisterMBeanбросил исключение. Обратите внимание, чтоRuntimeMBeanExceptionтакже может быть брошеноpreRegister, в таком случае MBean не будет зарегистрирован. -
RuntimeErrorException- Если методpostRegister(интерфейсMBeanRegistration) MBean бросил исключениеError, методregisterMBeanбросит исключениеRuntimeErrorException, хотя регистрация MBean прошла успешно. В таком случае MBean будет фактически зарегистрирован, даже если методregisterMBeanбросил исключение. Обратите внимание, чтоRuntimeErrorExceptionтакже может быть брошеноpreRegister, в таком случае MBean не будет зарегистрирован. -
NotCompliantMBeanException- Этот объект не является совместимым с JMX MBean -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Переданный в параметре объект равен null или не указано имя объекта. - См. также:
unregisterMBean
void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException
Если этот метод успешно удаляет MBean, отправляется уведомление, как описано выше.
- Specified by:
-
unregisterMBeanв интерфейсеMBeanServerConnection - 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
MBeanServerConnectionObjectInstance для заданного MBean, зарегистрированного на сервере MBean.- Specified by:
-
getObjectInstanceв интерфейсеMBeanServerConnection - Parameters:
-
name- Имя объекта MBean. - Returns:
ObjectInstanceдля MBean, указанного name. СодержимоеObjectNameи имя класса содержимого -.getMBeanInfo(name).getClassName()- Throws:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean.
queryMBeans
Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
ObjectName и/или выражению запроса, определённый MBean. Когда имя объекта равно null или не указаны домен и ключевые свойства, выбираются все объекты (и фильтруются, если указан запрос). Возвращает набор ObjectInstance объектов (содержащих ObjectName и имя класса Java) для выбранных MBeans.- Specified by:
-
queryMBeansв интерфейсеMBeanServerConnection - Parameters:
-
name- Шаблон имени объекта, определяющий MBeans для извлечения. Если null или не указаны домен и ключевые свойства, будут извлечены все зарегистрированные MBeans. -
query- Выражение запроса, применяемое для выбора MBeans. Если null, для выбора MBeans не будет применено никакого выражения запроса. - Returns:
- Набор
ObjectInstanceобъектов для выбранных MBeans. Если ни один MBean не удовлетворяет запросу, возвращается пустой список. - Throws:
RuntimeOperationsException
queryNames
Set<ObjectName> queryNames(ObjectName name, QueryExp query)
ObjectName и/или выражению запроса, конкретное имя MBean (эквивалентно проверке, зарегистрирован ли MBean). Когда имя объекта равно null или не указаны домен и ключевые свойства, выбираются все объекты (и фильтруются, если указан запрос). Возвращает набор ObjectNames для выбранных MBeans.- Specified by:
-
queryNamesв интерфейсеMBeanServerConnection - Parameters:
-
name- Шаблон имени объекта, определяющий имена MBeans для извлечения. Если null или не указаны домен и ключевые свойства, будут извлечены имена всех зарегистрированных MBeans. -
query- Выражение запроса, применяемое для выбора MBeans. Если null, для выбора MBeans не будет применено никакого выражения запроса. - Returns:
- Набор ObjectNames для выбранных MBeans. Если ни один MBean не удовлетворяет запросу, возвращается пустой список.
- Throws:
RuntimeOperationsException
isRegistered
boolean isRegistered(ObjectName name)
MBeanServerConnection- Specified by:
-
isRegisteredв интерфейсеMBeanServerConnection - Parameters:
-
name- Имя объекта MBean для проверки. - Returns:
- True, если MBean уже зарегистрирован на сервере MBean, false в противном случае.
- Throws:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null.
getMBeanCount
Integer getMBeanCount()
- Specified by:
-
getMBeanCountв интерфейсеMBeanServerConnection - Returns:
- количество зарегистрированных MBeans, заключенное в Integer. Если разрешения вызывающего метода ограничены, это число может быть больше, чем количество MBeans, к которым у вызывающего метода есть доступ.
getAttribute
Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
MBeanServerConnection- Specified by:
-
getAttributeв интерфейсеMBeanServerConnection - Parameters:
-
name- Имя объекта MBean, из которого извлекается атрибут. -
attribute- Строка, определяющая имя атрибута для извлечения. - Returns:
- Значение извлеченного атрибута.
- Throws:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибут в параметре равен null. -
MBeanException- Оборачивает исключение, выброшенное getter MBean. -
AttributeNotFoundException- Указанный атрибут недоступен в MBean. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
ReflectionException- Оборачиваетjava.lang.Exceptionвыброшенное при попытке вызова setter. - See Also:
getAttributes
AttributeList getAttributes(ObjectName name, String[] attributes) throws InstanceNotFoundException, ReflectionException
MBeanServerConnectionИзвлекает значения нескольких атрибутов именованного MBean. MBean идентифицируется по имени объекта.
Если один или несколько атрибутов не могут быть извлечены по какой-либо причине, они будут исключены из возвращаемого AttributeList. Вызывающий метод должен проверить, что список имеет такой же размер, как и массив attributes. Чтобы узнать, какая проблема помешала извлечению данного атрибута, вызовите getAttribute для этого атрибута.
Вот пример вызова этого метода и проверки успешного извлечения всех запрошенных атрибутов:
String[] attrNames = ...;
AttributeList list = mbeanServerConnection.getAttributes(objectName, attrNames);
if (list.size() == attrNames.length)
System.out.println("All attributes were retrieved successfully");
else {
List<String> missing = new ArrayList<String>(Arrays.asList(attrNames));
for (Attribute a : list.asList())
missing.remove(a.getName());
System.out.println("Did not retrieve: " + missing);
}
- Specified by:
-
getAttributesв интерфейсеMBeanServerConnection - Parameters:
-
name- Имя объекта MBean, из которого извлекаются атрибуты. -
attributes- Список атрибутов, которые нужно извлечь. - Returns:
- Список извлеченных атрибутов.
- Throws:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Имя объекта в параметре равно null или атрибуты в параметре равны null. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
ReflectionException- Произошла ошибка при попытке вызвать метод getAttributes динамического MBean. - See Also:
setAttribute
void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
MBeanServerConnection- Указано в:
-
setAttributeв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, в котором должен быть изменён атрибут. -
attribute- Идентификатор атрибута, который необходимо установить, и значение, на которое необходимо установить атрибут. - Исключения:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре равно null или атрибут в параметре равен null. -
InstanceNotFoundException- Указанный MBean не зарегистрирован в сервере MBean. -
AttributeNotFoundException- Указанный атрибут недоступен в MBean. -
InvalidAttributeValueException- Указанное значение для атрибута недействительно. -
MBeanException- Оборачивает исключение, сгенерированное методом установления значения атрибута MBean. -
ReflectionException- Оборачиваетjava.lang.Exceptionисключение, возникшее при попытке вызова метода установления значения. - См. также:
setAttributes
AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException
MBeanServerConnectionУстанавливает значения нескольких атрибутов именованного MBean. MBean идентифицируется по имени объекта.
Если один или несколько атрибутов по какой-либо причине не могут быть установлены, они будут пропущены в возвращаемом AttributeList. Вызывающий метод должен проверить, что входной AttributeList имеет тот же размер, что и выходной. Чтобы определить, что помешало получению определенного атрибута, обычно можно вызвать setAttribute для этого атрибута, хотя это не гарантируется. (Например, значения двух атрибутов могут быть отклонены из-за несовместимости друг с другом. Установка одного из них может быть разрешена.)
Вот пример вызова этого метода и проверки того, что он успешно установил все запрошенные атрибуты:
AttributeList inputAttrs = ...;
AttributeList outputAttrs = mbeanServerConnection.setAttributes(objectName, inputAttrs);
if (inputAttrs.size() == outputAttrs.size())
System.out.println("All attributes were set successfully");
else {
List<String> missing = new ArrayList<String>();
for (Attribute a : inputAttrs.asList())
missing.add(a.getName());
for (Attribute a : outputAttrs.asList())
missing.remove(a.getName());
System.out.println("Did not set: " + missing);
}
- Указано в:
-
setAttributesв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя объекта MBean, в котором должны быть установлены атрибуты. -
attributes- Список атрибутов: идентификация атрибутов, которые необходимо установить, и значения, на которые необходимо установить эти атрибуты. - Возвращает:
- Список атрибутов, которые были установлены, со своими новыми значениями.
- Исключения:
-
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: имя объекта в параметре равно null или список атрибутов в параметре равен null. -
InstanceNotFoundException- Указанный MBean не зарегистрирован на сервере MBean. -
ReflectionException- Во время попытки вызова метода getAttributes динамического MBean произошла ошибка. - См. также:
invoke
Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException
MBeanServerConnectionВызывает операцию на MBean.
Из-за необходимости signature для различения потенциально перегруженных операций, намного проще вызывать операции через прокси MBean, где это возможно. Например, предположим, что у вас есть интерфейс 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- Указано в:
-
getDefaultDomainв интерфейсеMBeanServerConnection - Возвращает:
- имя домена по умолчанию.
getDomains
String[] getDomains()
MBeanServerConnectionВозвращает список доменов, в которых в настоящее время зарегистрирован какой-либо MBean. Строка присутствует в возвращаемом массиве тогда и только тогда, когда зарегистрирован по крайней мере один MBean с именем объекта, чьё getDomain() равно этой строке. Порядок строк в возвращаемом массиве не определён.
- Указано в:
-
getDomainsв интерфейсеMBeanServerConnection - Возвращает:
- список доменов.
addNotificationListener
void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
Добавляет слушателя к зарегистрированному MBean. Уведомления, испускаемые MBean, будут перенаправлены слушателю.
Если источник уведомления является ссылкой на объект MBean, сервер MBean заменит его именем объекта этого MBean. В противном случае источник остаётся неизменным.- Указано в:
-
addNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, к которому должен быть добавлен слушатель. -
listener- Объект слушателя, который будет обрабатывать уведомления, испускаемые зарегистрированным MBean. -
filter- Объект фильтра. Если filter равен null, никакое фильтрация не будет выполнена перед обработкой уведомлений. -
handback- Контекст, который будет отправлен слушателю при испускании уведомления. - Исключения:
-
InstanceNotFoundException- Указанное имя MBean не соответствует ни одному из зарегистрированных MBean. - См. также:
addNotificationListener
void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
Добавляет слушателя к зарегистрированному MBean.
Уведомление, испускаемое MBean, будет перенаправлено сервером MBean слушателю. Если источник уведомления — ссылка на объект MBean, сервер MBean заменит его именем объекта этого MBean. В противном случае источник остаётся неизменным.
Объект слушателя, который получает уведомления, — это объект, зарегистрированный с данным именем в момент вызова этого метода. Даже если он будет позже дезактивирован, он продолжит получать уведомления.
- Указано в:
-
addNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, к которому должен быть добавлен слушатель. -
listener- Имя объекта слушателя, который будет обрабатывать уведомления, испускаемые зарегистрированным MBean. -
filter- Объект фильтра. Если filter равен null, никакое фильтрация не будет выполнена перед обработкой уведомлений. -
handback- Контекст, который будет отправлен слушателю при испускании уведомления. - Исключения:
-
RuntimeOperationsException- ОборачиваетIllegalArgumentException. MBean, именованныйlistener, существует, но не реализует интерфейсNotificationListener. -
InstanceNotFoundException- Имя MBean слушателя уведомлений или передатчика уведомлений не соответствует ни одному из зарегистрированных MBean. - См. также:
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionЕсли слушатель зарегистрирован более одного раза, возможно, с различными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.
- Определено в:
-
removeNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, из которого следует удалить слушателя. -
listener- Имя объекта слушателя, который нужно удалить. - Исключения:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. - См. также:
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionУдаляет слушателя из зарегистрированного MBean.
MBean должен иметь слушателя, который точно соответствует заданным параметрам listener, filter, и handback. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть null, если и только если они являются null в удаляемом слушателе.
- Определено в:
-
removeNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, из которого следует удалить слушателя. -
listener- Имя объекта слушателя, который нужно удалить. -
filter- Фильтр, указанный при добавлении слушателя. -
handback- Обратный вызов, указанный при добавлении слушателя. - Исключения:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и обратным вызовом. - См. также:
removeNotificationListener
void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionУдаляет слушателя из зарегистрированного MBean.
Если слушатель зарегистрирован более одного раза, возможно, с различными фильтрами или обратными вызовами, этот метод удалит все эти регистрации.
- Определено в:
-
removeNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, из которого следует удалить слушателя. -
listener- Слушатель, который нужно удалить. - Исключения:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. - См. также:
removeNotificationListener
void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnectionУдаляет слушателя из зарегистрированного MBean.
MBean должен иметь слушателя, который точно соответствует заданным параметрам listener, filter, и handback. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть null, если и только если они являются null в удаляемом слушателе.
- Определено в:
-
removeNotificationListenerв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя MBean, из которого следует удалить слушателя. -
listener- Слушатель, который нужно удалить. -
filter- Фильтр, указанный при добавлении слушателя. -
handback- Обратный вызов, указанный при добавлении слушателя. - Исключения:
-
InstanceNotFoundException- Предоставленное имя MBean не соответствует ни одному из зарегистрированных MBean. -
ListenerNotFoundException- Слушатель не зарегистрирован в MBean или не зарегистрирован с заданным фильтром и обратным вызовом. - См. также:
getMBeanInfo
MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException
MBeanServerConnection- Определено в:
-
getMBeanInfoв интерфейсеMBeanServerConnection - Параметры:
-
name- Имя анализируемого MBean - Возвращает:
- Экземпляр
MBeanInfo, позволяющий получить все атрибуты и операции данного MBean. - Исключения:
-
InstanceNotFoundException- Указанный MBean не найден. -
IntrospectionException- Произошло исключение во время интроспекции. -
ReflectionException- Произошло исключение при попытке вызвать getMBeanInfo динамического MBean.
isInstanceOf
boolean isInstanceOf(ObjectName name, String className) throws InstanceNotFoundException
MBeanServerConnectionВозвращает true, если указанный MBean является экземпляром указанного класса, иначе false.
Если name не указывает на MBean, этот метод выбрасывает InstanceNotFoundException.
В противном случае, пусть
X — MBean, имя которого указано в name,
L — загрузчик классов X,
N — имя класса в MBeanInfo X.
Если N равно className, результат — true.
В противном случае, если L успешно загружает className и X является экземпляром этого класса, результат — true.
В противном случае, если L успешно загружает N и className, и второй класс наследуется от первого, результат — true.
В противном случае, результат — false.
- Определено в:
-
isInstanceOfв интерфейсеMBeanServerConnection - Параметры:
-
name-ObjectNameMBean. -
className- Имя класса. - Возвращает:
- true, если указанный MBean является экземпляром указанного класса согласно приведенным правилам, иначе false.
- Исключения:
-
InstanceNotFoundException- Указанный MBean не зарегистрирован в сервере MBean. - См. также:
instantiate
Object instantiate(String className) throws ReflectionException, MBeanException
Инициализирует объект, используя список всех загрузчиков классов, зарегистрированных в Class Loader
Repository сервера MBean. Класс объекта должен иметь публичный конструктор. Этот метод возвращает ссылку на вновь созданный объект. Новый объект не регистрируется в сервере MBean.
Этот метод эквивалентен instantiate(className, (Object[]) null, (String[]) null).
- Параметры:
-
className- Имя класса объекта, который нужно инициализировать. - Возвращает:
- Новый инициализированный объект.
- Исключения:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exceptionпроизошедшее при попытке вызвать конструктор объекта. -
MBeanException- Конструктор объекта выбросил исключение -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Переданное в качестве параметра имя класса null.
instantiate
Object instantiate(String className, ObjectName loaderName) throws ReflectionException, MBeanException, InstanceNotFoundException
Инициализирует объект с использованием загрузчика классов, указанного его ObjectName. Если имя загрузчика null, используется загрузчик классов, загрузивший сервер MBean. Класс объекта должен иметь публичный конструктор. Этот метод возвращает ссылку на вновь созданный объект. Созданный объект не регистрируется в сервере MBean.
Этот метод эквивалентен instantiate(className, loaderName, (Object[]) null, (String[])
null).
- Parameters:
-
className- Имя класса MBean, подлежащего инициализации. -
loaderName- Имя объекта загрузчика классов, который следует использовать. - Returns:
- Новый инициализированный объект.
- Throws:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exceptionпроизошедшее при попытке вызова конструктора объекта. -
MBeanException- Конструктор объекта бросил исключение. -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере MBean. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Переданное имя класса null.
instantiate
Object instantiate(String className, Object[] params, String[] signature) throws ReflectionException, MBeanException
Инициализирует объект, используя список всех зарегистрированных загрузчиков классов в сервере MBean Class Loader
Repository. Класс объекта должен иметь публичный конструктор. Вызов возвращает ссылку на вновь созданный объект. Созданный объект не регистрируется в сервере MBean.
- Parameters:
-
className- Имя класса подлежащего инициализации. -
params- Массив, содержащий параметры вызываемого конструктора. -
signature- Массив, содержащий сигнатуру вызываемого конструктора. - Returns:
- Новый инициализированный объект.
- Throws:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exceptionпроизошедшее при попытке вызова конструктора объекта. -
MBeanException- Конструктор объекта бросил исключение -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Переданное имя класса null.
instantiate
Object instantiate(String className, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, MBeanException, InstanceNotFoundException
Инициализирует объект. Загрузчик классов, который следует использовать, идентифицируется по имени объекта. Если имя объекта загрузчика null, используется загрузчик классов, который загрузил сервер MBean. Класс объекта должен иметь публичный конструктор. Вызов возвращает ссылку на вновь созданный объект. Созданный объект не регистрируется в сервере MBean.
- Parameters:
-
className- Имя класса объекта, подлежащего инициализации. -
params- Массив, содержащий параметры вызываемого конструктора. -
signature- Массив, содержащий сигнатуру вызываемого конструктора. -
loaderName- Имя объекта загрузчика классов, который следует использовать. - Returns:
- Новый инициализированный объект.
- Throws:
-
ReflectionException- Оборачиваетjava.lang.ClassNotFoundExceptionилиjava.lang.Exceptionпроизошедшее при попытке вызова конструктора объекта. -
MBeanException- Конструктор объекта бросил исключение -
InstanceNotFoundException- Указанный загрузчик классов не зарегистрирован в сервере MBean. -
RuntimeOperationsException- Оборачиваетjava.lang.IllegalArgumentException: Переданное имя класса null.
deserialize
@Deprecated(since="1.5") default ObjectInputStream deserialize(ObjectName name, byte[] data) throws InstanceNotFoundException, OperationsException
getClassLoaderFor для получения соответствующего загрузчика классов для десериализации.Десериализует массив байтов в контексте загрузчика классов MBean.
- Implementation Requirements:
- Этот метод по умолчанию выбрасывает
UnsupportedOperationException. - Parameters:
-
name- Имя MBean, чьё ClassLoader следует использовать для десериализации. -
data- Массив байтов, подлежащий десериализации. - Returns:
- Поток десериализованного объекта.
- Throws:
-
InstanceNotFoundException- Указанный MBean не найден. -
OperationsException- Любые обычные исключения, связанные с вводом/выводом.
deserialize
@Deprecated(since="1.5") default ObjectInputStream deserialize(String className, byte[] data) throws OperationsException, ReflectionException
getClassLoaderRepository() для получения репозитория загрузчиков классов и использования его для десериализации.Десериализует массив байтов в контексте загрузчика классов заданного MBean. Загрузчик классов находится путем загрузки класса className через Class Loader
Repository. Полученный загрузчик класса и используется.
- Implementation Requirements:
- Этот метод по умолчанию выбрасывает
UnsupportedOperationException. - Parameters:
-
className- Имя класса, чьё ClassLoader следует использовать для десериализации. -
data- Массив байтов, подлежащий десериализации. - Returns:
- Поток десериализованного объекта.
- Throws:
-
OperationsException- Любые обычные исключения, связанные с вводом/выводом. -
ReflectionException- Указанный класс не смог быть загружен репозиторием загрузчиков классов
deserialize
@Deprecated(since="1.5") default ObjectInputStream deserialize(String className, ObjectName loaderName, byte[] data) throws InstanceNotFoundException, OperationsException, ReflectionException
getClassLoader для получения загрузчика классов для десериализации.Десериализует массив байтов в контексте загрузчика классов заданного MBean. Загрузчик классов — это загрузчик класса с именем "className". Имя загрузчика классов, используемого для загрузки указанного класса, указано. Если null, используется загрузчик классов сервера MBean.
- Implementation Requirements:
- Этот метод по умолчанию выбрасывает
UnsupportedOperationException. - Parameters:
-
className- Имя класса, чьё ClassLoader следует использовать для десериализации. -
data- Массив байтов, подлежащий десериализации. -
loaderName- Имя загрузчика классов, которое следует использовать для загрузки указанного класса. Если null, используется загрузчик классов сервера MBean. - Returns:
- Поток десериализованного объекта.
- Throws:
-
InstanceNotFoundException- Указанный MBean загрузчика классов не найден. -
OperationsException- Любые обычные исключения, связанные с вводом/выводом. -
ReflectionException- Указанный класс не смог быть загружен указанным загрузчиком классов.
getClassLoaderFor
ClassLoader getClassLoaderFor(ObjectName mbeanName) throws InstanceNotFoundException
Возвращает ClassLoader, который использовался для загрузки класса указанного MBean.
- Parameters:
-
mbeanName- Имя объекта MBean. - Returns:
- ClassLoader, используемый для данного MBean. Если l — фактический ClassLoader MBean, и r — возвращаемое значение, то либо:
- r идентичен l; или
- результат r
.loadClass(s)совпадает с l.loadClass(s)для любой строки s.
- Throws:
-
InstanceNotFoundException- если указанный MBean не найден.
getClassLoader
ClassLoader getClassLoader(ObjectName loaderName) throws InstanceNotFoundException
Возвращает указанный ClassLoader.
- Parameters:
-
loaderName- Имя объекта ClassLoader. Может быть null, в этом случае возвращается собственный ClassLoader сервера MBean. - Returns:
- Указанный ClassLoader. Если l — фактический ClassLoader с таким именем, и r — возвращаемое значение, то либо:
- r идентичен l; или
- результат r
.loadClass(s)совпадает с l.loadClass(s)для любой строки s.
- Throws:
-
InstanceNotFoundException- если указанный ClassLoader не найден.
getClassLoaderRepository
ClassLoaderRepository getClassLoaderRepository()
Возвращает ClassLoaderRepository для этого сервера MBean.
- Returns:
- ClassLoaderRepository для этого сервера MBean.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.management/javax/management/MBeanServer.html
getClassLoaderRepository()для получения хранилища загрузчиков классов и используйте его для десериализации.