- 所有已知的子接口:
MBeanServer
,MBeanServerForwarder
MBeanServer
接口扩展了该接口。
- 自从:
- 1.5
-
方法总结
修饰符和类型方法描述void
addNotificationListener
(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) 向已注册的 MBean 添加监听。void
addNotificationListener
(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) 向已注册的 MBean 添加监听。createMBean
(String className, ObjectName name) 在 MBean 服务中实例化和注册 MBean。createMBean
(String className, ObjectName name, Object[] params, String[] signature) 在 MBean 服务中实例化和注册 MBean。createMBean
(String className, ObjectName name, ObjectName loaderName) 在 MBean 服务中实例化和注册 MBean。createMBean
(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) 在 MBean 服务中实例化和注册 MBean。getAttribute
(ObjectName name, String attribute) 获取命名 MBean 的特定属性的值。getAttributes
(ObjectName name, String[] attributes) 检索命名 MBean 的多个属性的值。返回用于命名 MBean 的默认域。String[]
返回当前注册了任何 MBean 的域列表。返回在 MBean 服务中注册的 MBean 数。getMBeanInfo
(ObjectName name) 此方法发现 MBean 为管理而公开的属性和操作。getObjectInstance
(ObjectName name) 获取在 MBean 服务上注册的给定 MBean 的ObjectInstance
。invoke
(ObjectName name, String operationName, Object[] params, String[] signature) 在 MBean 上调用操作。boolean
isInstanceOf
(ObjectName name, String className) 如果指定的 MBean 是指定类的实例,则返回 true,否则返回 false。boolean
isRegistered
(ObjectName name) 检查由其对象名称标识的 MBean 是否已注册到 MBean 服务。queryMBeans
(ObjectName name, QueryExp query) 获取由 MBean 服务控制的 MBean。queryNames
(ObjectName name, QueryExp query) 获取由 MBean 服务控制的 MBean 的名称。void
removeNotificationListener
(ObjectName name, NotificationListener listener) 从已注册的 MBean 中删除监听。void
removeNotificationListener
(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) 从已注册的 MBean 中删除监听。void
removeNotificationListener
(ObjectName name, ObjectName listener) 从已注册的 MBean 中删除监听。void
removeNotificationListener
(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) 从已注册的 MBean 中删除监听。void
setAttribute
(ObjectName name, Attribute attribute) 设置命名 MBean 的特定属性的值。setAttributes
(ObjectName name, AttributeList attributes) 设置命名 MBean 的几个属性的值。void
unregisterMBean
(ObjectName name) 从 MBean 服务注销 MBean。
-
方法详情
-
createMBean
ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException , InstanceAlreadyExistsException , MBeanRegistrationException , MBeanException , NotCompliantMBeanException , IOException 在 MBean 服务中实例化和注册 MBean。 MBean 服务将使用它的
Default Loader Repository
来加载 MBean 的类。对象名称与 MBean 相关联。如果给定的对象名称为空,则 MBean 必须通过实现MBeanRegistration
接口并从preRegister
方法返回名称来提供自己的名称。此方法等效于
createMBean(className, name, (Object[]) null, (String[]) null)
。- 参数:
className
- 要实例化的 MBean 的类名。name
- MBean 的对象名称。可能为空。- 返回:
-
一个
ObjectInstance
,包含ObjectName
和新实例化的 MBean 的 Java 类名。如果包含的ObjectName
是n
,则包含的 Java 类名称是
。getMBeanInfo(n)
.getClassName() - 抛出:
ReflectionException
- 包装在尝试调用 MBean 的构造函数时发生的java.lang.ClassNotFoundException
或java.lang.Exception
。InstanceAlreadyExistsException
- MBean 已在 MBean 服务的控制之下。MBeanRegistrationException
- MBean 的preRegister
(MBeanRegistration
接口)方法抛出异常。 MBean 将不会被注册。RuntimeMBeanException
- 如果 MBean 的构造函数或其preRegister
或postRegister
方法抛出RuntimeException
。如果 MBean 的postRegister
(MBeanRegistration
接口)方法抛出一个RuntimeException
,createMBean
方法将抛出一个RuntimeMBeanException
,尽管 MBean 创建和注册成功。在这种情况下,即使createMBean
方法抛出异常,MBean 也会实际注册。请注意,RuntimeMBeanException
也可以由preRegister
抛出,在这种情况下,MBean 将不会被注册。RuntimeErrorException
- 如果 MBean 的postRegister
(MBeanRegistration
接口)方法抛出Error
,则createMBean
方法将抛出RuntimeErrorException
,尽管 MBean 创建和注册成功。在这种情况下,即使createMBean
方法抛出异常,MBean 也会实际注册。请注意,RuntimeErrorException
也可以由preRegister
抛出,在这种情况下,MBean 将不会被注册。MBeanException
- MBean 的构造函数抛出异常NotCompliantMBeanException
- 此类不是符合 JMX 的 MBeanRuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:传入参数的 className 为 null,传入参数ObjectName
包含模式或未为 MBean 指定ObjectName
。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
createMBean
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException , InstanceAlreadyExistsException , MBeanRegistrationException , MBeanException , NotCompliantMBeanException , InstanceNotFoundException , IOException 在 MBean 服务中实例化和注册 MBean。要使用的类加载器由其对象名称标识。对象名称与 MBean 相关联。如果加载器的对象名称为空,则将使用加载 MBean 服务的 ClassLoader。如果给定的 MBean 对象名称为 null,则 MBean 必须通过实现
MBeanRegistration
接口并从preRegister
方法返回名称来提供自己的名称。此方法等效于
createMBean(className, name, loaderName, (Object[]) null, (String[]) null)
。- 参数:
className
- 要实例化的 MBean 的类名。name
- MBean 的对象名称。可能为空。loaderName
- 要使用的类加载器的对象名称。- 返回:
-
一个
ObjectInstance
,包含ObjectName
和新实例化的 MBean 的 Java 类名。如果包含的ObjectName
是n
,则包含的 Java 类名称是
。getMBeanInfo(n)
.getClassName() - 抛出:
ReflectionException
- 包装在尝试调用 MBean 的构造函数时发生的java.lang.ClassNotFoundException
或java.lang.Exception
。InstanceAlreadyExistsException
- MBean 已在 MBean 服务的控制之下。MBeanRegistrationException
- MBean 的preRegister
(MBeanRegistration
接口)方法抛出异常。 MBean 将不会被注册。RuntimeMBeanException
- 如果 MBean 的构造函数或其preRegister
或postRegister
方法抛出RuntimeException
。如果 MBean 的postRegister
(MBeanRegistration
接口)方法抛出一个RuntimeException
,createMBean
方法将抛出一个RuntimeMBeanException
,尽管 MBean 创建和注册成功。在这种情况下,即使createMBean
方法抛出异常,MBean 也会实际注册。请注意,RuntimeMBeanException
也可以由preRegister
抛出,在这种情况下,MBean 将不会被注册。RuntimeErrorException
- 如果 MBean 的postRegister
(MBeanRegistration
接口)方法抛出Error
,则createMBean
方法将抛出RuntimeErrorException
,尽管 MBean 创建和注册成功。在这种情况下,即使createMBean
方法抛出异常,MBean 也会实际注册。请注意,RuntimeErrorException
也可以由preRegister
抛出,在这种情况下,MBean 将不会被注册。MBeanException
- MBean 的构造函数抛出异常NotCompliantMBeanException
- 此类不是符合 JMX 的 MBeanInstanceNotFoundException
- 指定的类加载器未在 MBean 服务中注册。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:传入参数的 className 为 null,传入参数ObjectName
包含模式或未为 MBean 指定ObjectName
。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
createMBean
ObjectInstance createMBean(String className, ObjectName name, Object [] params, String [] signature) throws ReflectionException , InstanceAlreadyExistsException , MBeanRegistrationException , MBeanException , NotCompliantMBeanException , IOException 在 MBean 服务中实例化和注册 MBean。 MBean 服务将使用它的Default Loader Repository
来加载 MBean 的类。对象名称与 MBean 相关联。如果给定的对象名称为空,则 MBean 必须通过实现MBeanRegistration
接口并从preRegister
方法返回名称来提供自己的名称。- 参数:
className
- 要实例化的 MBean 的类名。name
- MBean 的对象名称。可能为空。params
- 包含要调用的构造函数参数的数组。signature
- 包含要调用的构造函数签名的数组。- 返回:
-
一个
ObjectInstance
,包含ObjectName
和新实例化的 MBean 的 Java 类名。如果包含的ObjectName
是n
,则包含的 Java 类名称是
。getMBeanInfo(n)
.getClassName() - 抛出:
ReflectionException
- 包装在尝试调用 MBean 的构造函数时发生的java.lang.ClassNotFoundException
或java.lang.Exception
。InstanceAlreadyExistsException
- MBean 已在 MBean 服务的控制之下。MBeanRegistrationException
- MBean 的preRegister
(MBeanRegistration
接口)方法抛出异常。 MBean 将不会被注册。RuntimeMBeanException
- 如果 MBean 的构造函数或其preRegister
或postRegister
方法抛出RuntimeException
。如果 MBean 的postRegister
(MBeanRegistration
接口)方法抛出一个RuntimeException
,createMBean
方法将抛出一个RuntimeMBeanException
,尽管 MBean 创建和注册成功。在这种情况下,即使createMBean
方法抛出异常,MBean 也会实际注册。请注意,RuntimeMBeanException
也可以由preRegister
抛出,在这种情况下,MBean 将不会被注册。RuntimeErrorException
- 如果 MBean 的postRegister
(MBeanRegistration
接口)方法抛出Error
,则createMBean
方法将抛出RuntimeErrorException
,尽管 MBean 创建和注册成功。在这种情况下,即使createMBean
方法抛出异常,MBean 也会实际注册。请注意,RuntimeErrorException
也可以由preRegister
抛出,在这种情况下,MBean 将不会被注册。MBeanException
- MBean 的构造函数抛出异常NotCompliantMBeanException
- 此类不是符合 JMX 的 MBeanRuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:传入参数的 className 为 null,传入参数ObjectName
包含模式或未为 MBean 指定ObjectName
。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
createMBean
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object [] params, String [] signature) throws ReflectionException , InstanceAlreadyExistsException , MBeanRegistrationException , MBeanException , NotCompliantMBeanException , InstanceNotFoundException , IOException 在 MBean 服务中实例化和注册 MBean。要使用的类加载器由其对象名称标识。对象名称与 MBean 相关联。如果未指定加载程序的对象名称,将使用加载 MBean 服务的 ClassLoader。如果给定的 MBean 对象名称为 null,则 MBean 必须通过实现
MBeanRegistration
接口并从preRegister
方法返回名称来提供自己的名称。- 参数:
className
- 要实例化的 MBean 的类名。name
- MBean 的对象名称。可能为空。loaderName
- 要使用的类加载器的对象名称。params
- 包含要调用的构造函数参数的数组。signature
- 包含要调用的构造函数签名的数组。- 返回:
-
一个
ObjectInstance
,包含ObjectName
和新实例化的 MBean 的 Java 类名。如果包含的ObjectName
是n
,则包含的 Java 类名称是
。getMBeanInfo(n)
.getClassName() - 抛出:
ReflectionException
- 包装在尝试调用 MBean 的构造函数时发生的java.lang.ClassNotFoundException
或java.lang.Exception
。InstanceAlreadyExistsException
- MBean 已在 MBean 服务的控制之下。MBeanRegistrationException
- MBean 的preRegister
(MBeanRegistration
接口)方法抛出异常。 MBean 将不会被注册。RuntimeMBeanException
- MBean 的构造函数或其preRegister
或postRegister
方法抛出RuntimeException
。如果 MBean 的postRegister
(MBeanRegistration
接口)方法抛出一个RuntimeException
,createMBean
方法将抛出一个RuntimeMBeanException
,尽管 MBean 创建和注册成功。在这种情况下,即使createMBean
方法抛出异常,MBean 也会实际注册。请注意,RuntimeMBeanException
也可能由preRegister
抛出,在这种情况下,MBean 将不会被注册。RuntimeErrorException
- 如果 MBean 的postRegister
方法(MBeanRegistration
接口)方法抛出Error
,那么createMBean
方法将抛出RuntimeErrorException
,尽管 MBean 创建和注册成功。在这种情况下,即使createMBean
方法抛出异常,MBean 也会实际注册。请注意,RuntimeErrorException
也可以由preRegister
抛出,在这种情况下,MBean 将不会被注册。MBeanException
- MBean 的构造函数抛出异常NotCompliantMBeanException
- 此类不是符合 JMX 的 MBeanInstanceNotFoundException
- 指定的类加载器未在 MBean 服务中注册。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:传入参数的 className 为 null,传入参数ObjectName
包含模式或未为 MBean 指定ObjectName
。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
unregisterMBean
void unregisterMBean(ObjectName name) throws InstanceNotFoundException , MBeanRegistrationException , IOException 从 MBean 服务注销 MBean。 MBean 由其对象名称标识。一旦调用了该方法,就不能再通过其对象名访问 MBean。- 参数:
name
- 要取消注册的 MBean 的对象名称。- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。MBeanRegistrationException
- MBean 的 preDeregister (MBeanRegistration
interface) 方法抛出异常。RuntimeMBeanException
- 如果 MBean 的postDeregister
(MBeanRegistration
接口)方法抛出RuntimeException
,则unregisterMBean
方法将抛出RuntimeMBeanException
,尽管 MBean 注销成功。在这种情况下,即使unregisterMBean
方法抛出异常,MBean 实际上也会被注销。请注意,RuntimeMBeanException
也可以由preDeregister
抛出,在这种情况下,MBean 将保持注册状态。RuntimeErrorException
- 如果 MBean 的postDeregister
(MBeanRegistration
接口)方法抛出Error
,则unregisterMBean
方法将抛出RuntimeErrorException
,尽管 MBean 注销成功。在这种情况下,即使unregisterMBean
方法抛出异常,MBean 实际上也会被注销。请注意,RuntimeMBeanException
也可以由preDeregister
抛出,在这种情况下,MBean 将保持注册状态。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空,或者您尝试注销时所在的 MBean 是MBeanServerDelegate
MBean。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
getObjectInstance
获取在 MBean 服务上注册的给定 MBean 的ObjectInstance
。- 参数:
name
- MBean 的对象名称。- 返回:
-
与指定的 MBean 关联的
ObjectInstance
姓名.包含的ObjectName
是name
,包含的类名是
。getMBeanInfo(name)
.getClassName() - 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。IOException
- 与 MBean 服务对话时出现通信问题。
-
queryMBeans
获取由 MBean 服务控制的 MBean。此方法允许获取以下任何内容:所有 MBean,一组由ObjectName
上的模式匹配指定的 MBean 和/或查询表达式,一个特定的 MBean。当对象名称为 null 或未指定域和键属性时,将选择所有对象(如果指定了查询,则将进行过滤)。它为选定的 MBean 返回一组ObjectInstance
对象(包含ObjectName
和 Java 类名称)。- 参数:
name
- 标识要检索的 MBean 的对象名称模式。如果指定为空或未指定域和键属性,则将检索所有已注册的 MBean。query
- 用于选择 MBean 的查询表达式。如果为 null,将不会应用查询表达式来选择 MBean。- 返回:
-
包含所选 MBean 的
ObjectInstance
对象的集合。如果没有 MBean 满足查询,则返回一个空列表。 - 抛出:
IOException
- 与 MBean 服务对话时出现通信问题。
-
queryNames
获取由 MBean 服务控制的 MBean 的名称。此方法可以获取以下任何内容:所有 MBean 的名称、由ObjectName
和/或查询表达式上的模式匹配指定的一组 MBean 的名称、特定的 MBean 名称(相当于测试 MBean 是否是挂号的)。当对象名称为 null 或未指定域和键属性时,将选择所有对象(如果指定了查询,则会过滤)。它返回所选 MBean 的 ObjectNames 集。- 参数:
name
- 标识要检索的 MBean 名称的对象名称模式。如果指定为空或未指定域和键属性,将检索所有已注册 MBean 的名称。query
- 用于选择 MBean 的查询表达式。如果为 null,将不会应用查询表达式来选择 MBean。- 返回:
- 包含所选 MBean 的对象名称的集合。如果没有 MBean 满足查询,则返回一个空列表。
- 抛出:
IOException
- 与 MBean 服务对话时出现通信问题。
-
isRegistered
检查由其对象名称标识的 MBean 是否已注册到 MBean 服务。- 参数:
name
- 要检查的 MBean 的对象名称。- 返回:
- 如果 MBean 已在 MBean 服务中注册,则为 True,否则为 false。
- 抛出:
RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空。IOException
- 与 MBean 服务对话时出现通信问题。
-
getMBeanCount
返回在 MBean 服务中注册的 MBean 数。- 返回:
- 注册的 MBean 数。
- 抛出:
IOException
- 与 MBean 服务对话时出现通信问题。
-
getAttribute
Object getAttribute(ObjectName name, String attribute) throws MBeanException , AttributeNotFoundException , InstanceNotFoundException , ReflectionException , IOException 获取命名 MBean 的特定属性的值。 MBean 由其对象名称标识。- 参数:
name
- 要从中检索属性的 MBean 的对象名称。attribute
- 一个字符串,指定要检索的属性的名称。- 返回:
- 检索到的属性的值。
- 抛出:
AttributeNotFoundException
- 指定的属性在 MBean 中不可访问。MBeanException
- 包装由 MBean 的 getter 抛出的异常。InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。ReflectionException
- 包装在尝试调用 setter 时抛出的java.lang.Exception
。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空或参数中的属性为空。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
getAttributes
AttributeList getAttributes(ObjectName name, String [] attributes) throws InstanceNotFoundException , ReflectionException , IOException 检索命名 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 = newArrayList<String>
(Arrays.asList
(attrNames)); for (Attribute a : list.asList()) missing.remove(a.getName()); System.out.println("Did not retrieve: " + missing); }- 参数:
name
- 从中检索属性的 MBean 的对象名称。attributes
- 要检索的属性列表。- 返回:
- 检索到的属性的列表。
- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。ReflectionException
- 尝试调用 Dynamic MBean 的 getAttributes 方法时发生异常。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空或参数中的属性为空。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
setAttribute
void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException , AttributeNotFoundException , InvalidAttributeValueException , MBeanException , ReflectionException , IOException 设置命名 MBean 的特定属性的值。 MBean 由其对象名称标识。- 参数:
name
- 要在其中设置属性的 MBean 的名称。attribute
- 要设置的属性的标识及其要设置的值。- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。AttributeNotFoundException
- 指定的属性在 MBean 中不可访问。InvalidAttributeValueException
- 为属性指定的值无效。MBeanException
- 包装由 MBean 的设置器抛出的异常。ReflectionException
- 包装在尝试调用 setter 时抛出的java.lang.Exception
。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空或参数中的属性为空。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
setAttributes
AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException , ReflectionException , IOException 设置命名 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 = newArrayList<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); }- 参数:
name
- 要在其中设置属性的 MBean 的对象名称。attributes
- 属性列表:要设置的属性的标识及其要设置的值。- 返回:
- 已设置的属性列表及其新值。
- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。ReflectionException
- 尝试调用 Dynamic MBean 的 getAttributes 方法时发生异常。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空或参数中的属性为空。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
invoke
Object invoke(ObjectName name, String operationName, Object [] params, String [] signature) throws InstanceNotFoundException , MBeanException , ReflectionException , IOException 在 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);
- 参数:
name
- 要在其上调用方法的 MBean 的对象名称。operationName
- 要调用的操作的名称。params
- 包含调用操作时要设置的参数的数组signature
- 包含操作签名的数组,由Class.getName()
返回的格式的类名数组。将使用与用于加载调用操作的 MBean 的类加载器相同的类加载器来加载类对象。- 返回:
- 操作返回的对象,表示对指定的 MBean 调用操作的结果。
- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。MBeanException
- 包装由 MBean 的调用方法抛出的异常。ReflectionException
- 包装在尝试调用该方法时抛出的java.lang.Exception
。IOException
- 与 MBean 服务对话时出现通信问题。
-
getDefaultDomain
返回用于命名 MBean 的默认域。如果用户未指定域,则默认域名用作 MBean 的 ObjectName 中的域部分。- 返回:
- 默认域。
- 抛出:
IOException
- 与 MBean 服务对话时出现通信问题。
-
getDomains
返回当前注册了任何 MBean 的域列表。当且仅当至少有一个 MBean 使用
getDomain()
等于该字符串的 ObjectName 注册时,字符串才会出现在返回的数组中。未定义返回数组中字符串的顺序。- 返回:
- 域列表。
- 抛出:
IOException
- 与 MBean 服务对话时出现通信问题。
-
addNotificationListener
void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException , IOException 向已注册的 MBean 添加监听。 MBean 发出的通知将转发给监听。
- 参数:
name
- 应在其上添加监听器的 MBean 的名称。listener
- 将处理已注册 MBean 发出的通知的监听器对象。filter
- 过滤器对象。如果 filter 为 null,则在处理通知之前不会执行任何过滤。handback
- 发出通知时要发送给监听器的上下文。- 抛出:
InstanceNotFoundException
- 提供的 MBean 名称与任何已注册的 MBean 都不匹配。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
addNotificationListener
void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException , IOException 向已注册的 MBean 添加监听。
MBean 发出的通知将由 MBeanServer 转发给监听。如果通知源是对 MBean 对象的引用,则 MBean 服务将用该 MBean 的 ObjectName 替换它。否则源不变。
接收通知的监听对象是在调用此方法时使用给定名称注册的对象。即使随后取消注册,它也会继续收到通知。
- 参数:
name
- 应在其上添加监听器的 MBean 的名称。listener
- 将处理已注册 MBean 发出的通知的监听器的对象名称。filter
- 过滤器对象。如果 filter 为 null,则在处理通知之前不会执行任何过滤。handback
- 发出通知时要发送给监听器的上下文。- 抛出:
InstanceNotFoundException
- 通知监听器或通知广播器的 MBean 名称与任何已注册的 MBean 都不匹配。RuntimeOperationsException
- 包装一个IllegalArgumentException
。listener
命名的 MBean 存在但未实现NotificationListener
接口。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException , ListenerNotFoundException , IOException 从已注册的 MBean 中删除监听。如果监听注册了不止一次,可能使用不同的过滤器或回调,此方法将删除所有这些注册。
- 参数:
name
- 应删除监听器的 MBean 的名称。listener
- 要删除的监听器的对象名称。- 抛出:
InstanceNotFoundException
- 提供的 MBean 名称与任何已注册的 MBean 都不匹配。ListenerNotFoundException
- 监听器未在 MBean 中注册。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException , ListenerNotFoundException , IOException 从已注册的 MBean 中删除监听。
MBean 必须具有与给定的
listener
、filter
和handback
参数完全匹配的监听器。如果有多个这样的监听器,则只删除一个。当且仅当它们在要删除的监听器中为空时,
filter
和handback
参数可以为空。- 参数:
name
- 应删除监听器的 MBean 的名称。listener
- 要删除的监听器的对象名称。filter
- 添加监听器时指定的过滤器。handback
- 添加监听器时指定的交接。- 抛出:
InstanceNotFoundException
- 提供的 MBean 名称与任何已注册的 MBean 都不匹配。ListenerNotFoundException
- 监听器未在 MBean 中注册,或者未向给定的过滤器和 handback 注册。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
removeNotificationListener
void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException , ListenerNotFoundException , IOException 从已注册的 MBean 中删除监听。
如果监听注册了不止一次,可能使用不同的过滤器或回调,此方法将删除所有这些注册。
- 参数:
name
- 应删除监听器的 MBean 的名称。listener
- 要删除的监听器。- 抛出:
InstanceNotFoundException
- 提供的 MBean 名称与任何已注册的 MBean 都不匹配。ListenerNotFoundException
- 监听器未在 MBean 中注册。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
removeNotificationListener
void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException , ListenerNotFoundException , IOException 从已注册的 MBean 中删除监听。
MBean 必须具有与给定的
listener
、filter
和handback
参数完全匹配的监听器。如果有多个这样的监听器,则只删除一个。当且仅当它们在要删除的监听器中为空时,
filter
和handback
参数可以为空。- 参数:
name
- 应删除监听器的 MBean 的名称。listener
- 要删除的监听器。filter
- 添加监听器时指定的过滤器。handback
- 添加监听器时指定的交接。- 抛出:
InstanceNotFoundException
- 提供的 MBean 名称与任何已注册的 MBean 都不匹配。ListenerNotFoundException
- 监听器未在 MBean 中注册,或者未向给定的过滤器和 handback 注册。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-
getMBeanInfo
MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException , IntrospectionException , ReflectionException , IOException 此方法发现 MBean 为管理而公开的属性和操作。- 参数:
name
- 要分析的 MBean 的名称- 返回:
MBeanInfo
的实例允许检索此 MBean 的所有属性和操作。- 抛出:
IntrospectionException
- 内省期间发生异常。InstanceNotFoundException
- 未找到指定的 MBean。ReflectionException
- 尝试调用 Dynamic MBean 的 getMBeanInfo 时发生异常。IOException
- 与 MBean 服务对话时出现通信问题。
-
isInstanceOf
boolean isInstanceOf(ObjectName name, String className) throws InstanceNotFoundException , IOException 如果指定的 MBean 是指定类的实例,则返回 true,否则返回 false。
如果
name
没有命名 MBean,则此方法抛出InstanceNotFoundException
。否则,让
X 是由name
命名的 MBean,
L 是 X 的类加载器,
是 X 的MBeanInfo
中的类名。如果 N 等于
className
,则结果为真。否则,如果 L 成功加载
className
且 X 是此类的实例,则结果为真。否则,如果 L 成功加载 N 和
className
,并且第二个类可从第一个类分配,则结果为真。否则,结果为假。
- 参数:
name
- MBean 的ObjectName
。className
- 类的名称。- 返回:
- 如果根据上述规则指定的 MBean 是指定类的实例,则返回 true,否则返回 false。
- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。IOException
- 与 MBean 服务对话时出现通信问题。- 参见:
-