public interface MBeanServerConnection
此接口表示了与 MBean 服务器(无论是本地的还是远程的)进行通信的一种方式。表示本地 MBean 服务器的 MBeanServer
接口扩展了此接口。
方法摘要 | |
---|---|
void |
addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) 向已注册的 MBean 添加一个侦听器。 |
void |
addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) 向已注册的 MBean 添加一个侦听器。 |
ObjectInstance |
createMBean(String className, ObjectName name) 在 MBean 服务器中实例化并注册一个 MBean。 |
ObjectInstance |
createMBean(String className, ObjectName name, Object[] params, String[] signature) 在 MBean 服务器中实例化并注册一个 MBean。 |
ObjectInstance |
createMBean(String className, ObjectName name, ObjectName loaderName) 在 MBean 服务器中实例化并注册一个 MBean。 |
ObjectInstance |
createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) 在 MBean 服务器中实例化并注册一个 MBean。 |
Object |
getAttribute(ObjectName name, String attribute) 获得指定 MBean 的特定属性值。 |
AttributeList |
getAttributes(ObjectName name, String[] attributes) 获得指定 MBean 的多个属性值。 |
String |
getDefaultDomain() 返回对 MBean 命名时使用的默认域。 |
String[] |
getDomains() 返回其中所有 MBean 当前已注册的域的列表。 |
Integer |
getMBeanCount() 返回 MBean 服务器中已注册的 MBean 数目。 |
MBeanInfo |
getMBeanInfo(ObjectName name) 此方法发现了 MBean 为管理而公开的属性和操作。 |
ObjectInstance |
getObjectInstance(ObjectName name) 获得向 MBean 服务器注册的给定 MBean 的 ObjectInstance 。 |
Object |
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 服务器注册。 |
Set<ObjectInstance> |
queryMBeans(ObjectName name, QueryExp query) 获得该 MBean 服务器所控制的 MBean。 |
Set<ObjectName> |
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 的特定属性值。 |
AttributeList |
setAttributes(ObjectName name, AttributeList attributes) 设置指定 MBean 的多个属性值。 |
void |
unregisterMBean(ObjectName name) 从 MBean 服务器中注销一个 MBean。 |
方法详细信息 |
---|
ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException
在 MBean 服务器中实例化并注册一个 MBean。MBean 服务器将使用其默认的 Loader Repository
来加载 MBean 的类。对象名与该 MBean 相关联。如果给定的对象名为 null,则该 MBean 必须提供自己的名称,方法是实现 MBeanRegistration
接口并从 preRegister
方法中返回名称。
此方法等效于 createMBean(className, name, (Object[]) null, (String[]) null)
。
className
- 要实例化的 MBean 的类名。
name
- 该 MBean 的对象名。可以为 null。
ObjectInstance
,包含新实例化的 MBean 的
ObjectName
和 Java 类名。如果包含的
ObjectName
是
n
,则所包含的 Java 类名是
getMBeanInfo(n)
.getClassName()
。
ReflectionException
- 包装在试图调用 MBean 的构造方法时所出现的
java.lang.ClassNotFoundException
或
java.lang.Exception
。
InstanceAlreadyExistsException
- 如果该 MBean 已经处于 MBean 服务器的控制之下。
MBeanRegistrationException
- 如果 MBean 的
preRegister
(
MBeanRegistration
接口)方法已经抛出异常。不注册该 MBean。
MBeanException
- 如果 MBean 的构造方法已经抛出异常
NotCompliantMBeanException
- 如果此类不是符合 JMX 的 MBean
RuntimeOperationsException
- 包装
java.lang.IllegalArgumentException
:如果传入参数中的 className 为 null,传入参数中的
ObjectName
包含一个模式或者没有为该 MBean 指定
ObjectName
。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException
在 MBean 服务器中实例化并注册一个 MBean。通过其对象名标识使用的类加载器。对象名与该 MBean 相关联。如果加载器的对象名为 null,则将使用加载 MBean 服务器的 ClassLoader。如果给定的 MBean 对象名为 null,则该 MBean 必须提供自己的名称,方法是实现 MBeanRegistration
接口并从 preRegister
方法中返回名称。
此方法等效于 createMBean(className, name, loaderName, (Object[]) null, (String[]) null)
。
className
- 要实例化的 MBean 的类名。
name
- 该 MBean 的对象名。可以为 null。
loaderName
- 要使用的类加载器的对象名。
ObjectInstance
,包含新实例化的 MBean 的
ObjectName
和 Java 类名。如果包含的
ObjectName
是
n
,则所包含的 Java 类名是
getMBeanInfo(n)
.getClassName()
。
ReflectionException
- 包装在试图调用 MBean 的构造方法时所出现的
java.lang.ClassNotFoundException
或
java.lang.Exception
。
InstanceAlreadyExistsException
- 如果该 MBean 已经处于 MBean 服务器的控制之下。
MBeanRegistrationException
- 如果 MBean 的
preRegister
(
MBeanRegistration
接口)方法已经抛出异常。不注册该 MBean。
MBeanException
- 如果 MBean 的构造方法已经抛出异常。
NotCompliantMBeanException
- 如果此类不是符合 JMX 的 MBean。
InstanceNotFoundException
- 如果未在 MBean 服务器中注册指定的类加载器。
RuntimeOperationsException
- 包装
java.lang.IllegalArgumentException
:如果传入参数中的 className 为 null,传入参数中的
ObjectName
包含一个模式或者没有为该 MBean 指定
ObjectName
。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException
默认的 Loader Repository
来加载 MBean 的类。对象名与该 MBean 相关联。如果给定的对象名为 null,则该 MBean 必须提供自己的名称,方法是实现
MBeanRegistration
接口并从
preRegister
方法中返回名称。
className
- 要实例化的 MBean 的类名。
name
- 该 MBean 的对象名。可以为 null。
params
- 一个数组,包含要调用的构造方法的参数。
signature
- 一个数组,包含要调用的构造方法的签名。
ObjectInstance
,包含新实例化的 MBean 的
ObjectName
和 Java 类名。如果包含的
ObjectName
是
n
,则所包含的 Java 类名是
getMBeanInfo(n)
.getClassName()
。
ReflectionException
- 包装在试图调用 MBean 的构造方法时所出现的
java.lang.ClassNotFoundException
或
java.lang.Exception
。
InstanceAlreadyExistsException
- 如果该 MBean 已经处于 MBean 服务器的控制之下。
MBeanRegistrationException
- 如果 MBean 的
preRegister
(
MBeanRegistration
接口)方法已经抛出异常。不注册该 MBean。
MBeanException
- 如果 MBean 的构造方法已经抛出异常
NotCompliantMBeanException
- 如果此类不是符合 JMX 的 MBean
RuntimeOperationsException
- 包装
java.lang.IllegalArgumentException
:如果传入参数中的 className 为 null,传入参数中的
ObjectName
包含一个模式或者没有为该 MBean 指定
ObjectName
。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException
MBeanRegistration
接口并从
preRegister
方法中返回名称。
className
- 要实例化的 MBean 的类名。
name
- 该 MBean 的对象名。可以为 null。
params
- 一个数组,包含要调用的构造方法的参数。
signature
- 一个数组,包含要调用的构造方法的签名。
loaderName
- 要使用的类加载器的对象名。
ObjectInstance
,包含新实例化的 MBean 的
ObjectName
和 Java 类名。如果包含的
ObjectName
是
n
,则所包含的 Java 类名是
getMBeanInfo(n)
.getClassName()
。
ReflectionException
- 包装在试图调用 MBean 的构造方法时所出现的
java.lang.ClassNotFoundException
或
java.lang.Exception
。
InstanceAlreadyExistsException
- 如果该 MBean 已经处于 MBean 服务器的控制之下。
MBeanRegistrationException
- 如果 MBean 的
preRegister
(
MBeanRegistration
接口)方法已经抛出异常。不注册该 MBean。
MBeanException
- 如果 MBean 的构造方法已经抛出异常
NotCompliantMBeanException
- 如果此类不是符合 JMX 的 MBean
InstanceNotFoundException
- 如果未在 MBean 服务器中注册指定的类加载器。
RuntimeOperationsException
- 包装
java.lang.IllegalArgumentException
:如果传入参数中的 className 为 null,传入参数中的
ObjectName
包含一个模式或者没有为该 MBean 指定
ObjectName
。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException, IOException
name
- 要注销的 MBean 的对象名。
InstanceNotFoundException
- 如果指定的 MBean 未在该 MBean 服务器中注册。
MBeanRegistrationException
- 如果 MBean 的 preDeregister(
MBeanRegistration
接口)方法已经抛出异常。
RuntimeOperationsException
- 包装
java.lang.IllegalArgumentException
:如果参数中的对象名为 null,或者试图注销的 MBean 是
MBeanServerDelegate
MBean。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException, IOException
ObjectInstance
。
name
- MBean 的对象名。
ObjectInstance
。包含的
ObjectName
是
name
, 且所包含的类名是
getMBeanInfo(name)
.getClassName()
。
InstanceNotFoundException
- 如果指定的 MBean 未在该 MBean 服务器中注册。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query) throws IOException
ObjectName
和/或 Query 表达式相匹配的模式所指定的一组 MBean、一个特定的 MBean。当对象名为 null 并且未指定域和键属性时,会选中所有对象(如果指定了查询,则进行过滤)。它返回已选中 MBean 的
ObjectInstance
对象集(包含
ObjectName
和 Java 类名)
name
- 对象名模式,标识要检索的 MBean。如果为 null 或未指定域和键属性,则检索所有已注册的 MBean。
query
- 应用到所选 MBean 的查询表达式。如果为 null,则不对所选的 MBean 应用查询表达式。
ObjectInstance
对象的集合。如果没有满足该查询的 MBean,则返回一个空列表。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
Set<ObjectName> queryNames(ObjectName name, QueryExp query) throws IOException
ObjectName
和/或 Query 表达式相匹配的模式所指定的一组 MBean 的名称、一个特定 MBean 的名称(等效于测试是否已注册某个 MBean)。当对象名为 null 并且未指定域和键属性时,会选中所有对象(如果指定了查询,则进行过滤)。它返回已选中的 MBean 的 ObjectNames 集合。
name
- 对象名模式,标识要检索的 MBean 名称。如果为 null 或未指定域和键属性,则检索所有已注册的 MBean 的名称。
query
- 应用到所选 MBean 的查询表达式。如果为 null,则不对选中 MBean 应用查询表达式。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
boolean isRegistered(ObjectName name) throws IOException
name
- 要检查的 MBean 的对象名。
RuntimeOperationsException
- 包装
java.lang.IllegalArgumentException
:如果参数中的对象名为 null。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
Integer getMBeanCount() throws IOException
IOException
- 如果与 MBean 服务器通信时出现通信问题。
Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException, IOException
name
- MBean 的对象名,要通过该对象名检索 MBean 的属性。
attribute
- 指定要检索的属性名的 String。
AttributeNotFoundException
- 如果指定的属性在 MBean 中是不可访问的。
MBeanException
- 包装 MBean 的获取方法所抛出的异常。
InstanceNotFoundException
- 如果指定的 MBean 未在该 MBean 服务器中注册。
ReflectionException
- 包装试图调用设置方法时所抛出的
java.lang.Exception
。
RuntimeOperationsException
- 包装
java.lang.IllegalArgumentException
:如果参数中的对象名为 null 或者参数中的属性为 null。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
setAttribute(javax.management.ObjectName, javax.management.Attribute)
AttributeList getAttributes(ObjectName name, String[] attributes) throws InstanceNotFoundException, ReflectionException, IOException
name
- MBean 的对象名,通过该对象名检索该 MBean 的属性。
attributes
- 要检索的属性列表。
InstanceNotFoundException
- 如果指定的 MBean 未在该 MBean 服务器中注册。
ReflectionException
- 试图调用 Dynamic MBean 的 getAttributes 方法时抛出的异常。
RuntimeOperationsException
- 包装
java.lang.IllegalArgumentException
:如果参数中的对象名为 null 或者参数中的属性为 null。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
setAttributes(javax.management.ObjectName, javax.management.AttributeList)
void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException, IOException
name
- 要设置其属性的 MBean 的名称。
attribute
- 要设置的属性的标识及其要设置成的值。
InstanceNotFoundException
- 如果指定的 MBean 未在该 MBean 服务器中注册。
AttributeNotFoundException
- 如果指定的属性在 MBean 中是不可访问的。
InvalidAttributeValueException
- 如果为该属性指定的值无效。
MBeanException
- 包装 MBean 的设置方法所抛出的异常。
ReflectionException
- 包装试图调用设置方法时所抛出的
java.lang.Exception
。
RuntimeOperationsException
- 包装
java.lang.IllegalArgumentException
:如果参数中的对象名为 null 或者参数中的属性为 null。
IOException
- 如果与 MBean 服务器通信时出现通信问题。
getAttribute(javax.management.ObjectName, java.lang.String)
AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException, IOException
name
- 要设置其属性的 MBean 的对象名。
attributes
- 属性列表:要设置的属性的标识及其要设置成的值。
InstanceNotFoundException
- 如果指定的 MBean 未在该 MBean 服务器中注册。