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