public interface MBeanServer extends MBeanServerConnection
这是对代理方为MBean操作界面。它包含必要的创作方法注册和删除MBeans以及注册MBean的访问方法。这是它的核心基础设施组件。
用户代码通常不实现此接口。相反,实现该接口中的一个MBeanServerFactory
类的方法获得一个对象。
每个MBean是添加到MBean服务器成为可控的:它的属性和操作成为远程访问通过连接到MBean服务器的连接器/适配器。一个java对象不能被注册在MBean服务器除非是JMX兼容MBean。
当MBean注册或未注册的MBean服务器的MBeanServerNotification
发出通知。登记对象为听众mbeanservernotifications你应该叫MBean服务器的方法与ObjectName
addNotificationListener
的MBeanServerDelegate
的ObjectName
。这ObjectName
:
JMImplementation:type=MBeanServerDelegate
。
获得一个对象的MBeanServerFactory
班createMBeanServer
或newMBeanServer
方法应用安全检查方法如下。
第一,如果没有安全经理(System.getSecurityManager()
是无效的),然后此接口的实现是不做任何检查。
假设有一个安全管理器,或执行选择要进行检查,检查如下所做的详细说明。接下来,除非另有规定,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")
。此外,每个属性在AttributeList
,如果调用者的权限并不意味着MBeanPermission(className, a, name, "getAttribute")
,MBean服务器将表现为如果属性没有被提供的名单中。
为setAttribute
方法调用者的权限必须意味着MBeanPermission(className, attrName, name, "setAttribute")
,哪里是attribute.getName()
attrName
。
为setAttributes
方法调用者的权限必须意味着MBeanPermission(className, null, name, "setAttribute")
。此外,每个属性在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"
代替在MBeanPermission
对象"queryMBeans"
。请注意,"queryMBeans"
许可意味着相应的"queryNames"
许可。
为getDomains
方法调用者的权限必须意味着MBeanPermission(null, null, null, "getDomains")
。此外,各领域D在返回的数组,如果调用者的权限并不意味着MBeanPermission(null, null, new ObjectName("d:x=x"), "getDomains")
,域是由阵列消除。在这里,x=x
是任何键=值配对,需要满足对象的构造函数,而不是其他相关。
为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
检查成功,经检验,其ProtectionDomain
意味着MBeanTrustPermission("register")
验证MBean的班级。
最后,如果name
论证是无效的,另一个MBeanPermission
检查使用ObjectName
使返回的MBeanRegistration.preRegister
。
为createMBean
方法调用者的权限必须意味着所需的权限相当于instantiate
随后registerMBean
。
为unregisterMBean
方法调用者的权限必须意味着MBeanPermission(className, null, name, "unregisterMBean")
。
Modifier and Type | Method and Description |
---|---|
void |
addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback)
添加一个监听器注册MBean。
|
void |
addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback)
添加一个监听器注册MBean。
|
ObjectInstance |
createMBean(String className, ObjectName name)
实例化和注册在MBean服务器的MBean。
|
ObjectInstance |
createMBean(String className, ObjectName name, Object[] params, String[] signature)
实例化和注册在MBean服务器的MBean。
|
ObjectInstance |
createMBean(String className, ObjectName name, ObjectName loaderName)
实例化和注册在MBean服务器的MBean。
|
ObjectInstance |
createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature)
实例化和注册在MBean服务器的MBean。
|
ObjectInputStream |
deserialize(ObjectName name, byte[] data)
过时的。
使用
getClassLoaderFor 获得适当的反序列化的类装载器。
|
ObjectInputStream |
deserialize(String className, byte[] data)
过时的。
使用
getClassLoaderRepository() 获得类加载器存储库,用它来反序列化。
|
ObjectInputStream |
deserialize(String className, ObjectName loaderName, byte[] data)
过时的。
使用
getClassLoader 获得反序列化的类装载器。
|
Object |
getAttribute(ObjectName name, String attribute)
获取一个名为MBean的特定属性的值。
|
AttributeList |
getAttributes(ObjectName name, String[] attributes)
获取一个名为MBean的几个属性的值。
|
ClassLoader |
getClassLoader(ObjectName loaderName)
返回指定的
ClassLoader 。
|
ClassLoader |
getClassLoaderFor(ObjectName mbeanName)
返回
ClassLoader ,用于加载的名叫MBean的课。
|
ClassLoaderRepository |
getClassLoaderRepository()
返回这个classloaderrepository MBeanServer。
|
String |
getDefaultDomain()
返回用于命名的MBean默认域。
|
String[] |
getDomains()
返回内任何MBean目前注册名单。
|
Integer |
getMBeanCount()
返回在MBean服务器注册MBean的数量。
|
MBeanInfo |
getMBeanInfo(ObjectName name)
这种方法发现MBean公开管理的属性和操作。
|
ObjectInstance |
getObjectInstance(ObjectName name)
获取一个给定的MBean的MBean服务器注册的
ObjectInstance 。
|
Object |
instantiate(String className)
使用类加载器实例化所有的MBean服务器的
Class Loader Repository 注册列表对象。
|
Object |
instantiate(String className, Object[] params, String[] signature)
使用类加载器实例化所有的
Class Loader Repository 注册MBean服务器的列表对象。
|
Object |
instantiate(String className, ObjectName loaderName)
使用指定的
ObjectName 实例化的类加载器对象。
|
Object |
instantiate(String className, ObjectName loaderName, Object[] params, String[] signature)
实例化一个对象。
|
Object |
invoke(ObjectName name, String operationName, Object[] params, String[] signature)
调用MBean操作。
|
boolean |
isInstanceOf(ObjectName name, String className)
如果指定的MBean是指定类的实例返回true,否则为false。
|
boolean |
isRegistered(ObjectName name)
检查是否一个MBean,其对象的姓名,已经与MBean服务器注册。
|
Set<ObjectInstance> |
queryMBeans(ObjectName name, QueryExp query)
通过MBean服务器控制的MBeans。
|
Set<ObjectName> |
queryNames(ObjectName name, QueryExp query)
获取由MBean服务器控制的MBean的名字。
|
ObjectInstance |
registerMBean(Object object, ObjectName name)
注册一个已存在的对象与MBean服务器的MBean。
|
void |
removeNotificationListener(ObjectName name, NotificationListener listener)
从注册MBean移除侦听器。
|
void |
removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback)
从注册MBean移除侦听器。
|
void |
removeNotificationListener(ObjectName name, ObjectName listener)
从注册MBean移除侦听器。
|
void |
removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback)
从注册MBean移除侦听器。
|
void |
setAttribute(ObjectName name, Attribute attribute)
套一个名叫MBean的特定属性的值。
|
AttributeList |
setAttributes(ObjectName name, AttributeList attributes)
套一名叫MBean的几个属性的值。
|
void |
unregisterMBean(ObjectName name)
将从MBean服务器MBean。
|
ObjectInstance createMBean(String className, ObjectName name) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
实例化和注册在MBean服务器的MBean。MBean服务器将使用其Default Loader Repository
加载MBean类。对象名称与MBean相关。如果对象名是无效的,必须通过实施MBeanRegistration
MBean接口和从preRegister
方法返回的名称提供它自己的名字。
这种方法相当于createMBean(className, name, (Object[]) null, (String[]) null)
。
如果这种方法成功地创建一个MBean,通知了above派。
createMBean
接口
MBeanServerConnection
className
- MBean类名称被实例化。
name
- MBean对象名称。可能是空的。
ObjectInstance
,含有
ObjectName
和新实例化MBean的java类的名称。如果有
ObjectName
是
n
,包含java类的名字是
getMBeanInfo(n)
.getClassName()
。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:类名传入的参数为空,
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
MBeanRegistration
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
实例化和注册在MBean服务器的MBean。要使用的类装载器是由它的对象名称标识的。对象名称与MBean相关。如果Loader对象名称是无效的,该类加载器加载的MBean服务器将使用。如果MBean的对象名是无效的,必须通过实施MBeanRegistration
MBean接口和从preRegister
方法返回的名称提供它自己的名字。
这种方法相当于createMBean(className, name, loaderName, (Object[]) null, (String[]) null)
。
如果这种方法成功地创建一个MBean,通知了above派。
createMBean
接口
MBeanServerConnection
className
- MBean类名称被实例化。
name
- MBean对象名称。可能是空的。
loaderName
-类加载器对象的名字被使用。
ObjectInstance
,含有
ObjectName
和新实例化MBean的java类的名称。如果有
ObjectName
是
n
,包含java类的名字是
getMBeanInfo(n)
.getClassName()
。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:类名传入的参数为空,
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服务器注册。
MBeanRegistration
ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException
Default Loader Repository
加载MBean类。对象名称与MBean相关。如果对象名是无效的,必须通过实施
MBeanRegistration
MBean接口和从
preRegister
方法返回的名称提供它自己的名字。
如果这种方法成功地创建一个MBean,通知了above派。
createMBean
接口
MBeanServerConnection
className
- MBean类名称被实例化。
name
- MBean对象名称。可能是空的。
params
-数组包含要调用的构造函数的参数。
signature
-数组包含要调用构造函数的签名。
ObjectInstance
,含有
ObjectName
和新实例化MBean的java类的名称。如果有
ObjectName
是
n
,包含java类的名字是
getMBeanInfo(n)
.getClassName()
。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:类名传入的参数为空,
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
MBeanRegistration
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException
实例化和注册在MBean服务器的MBean。要使用的类装载器是由它的对象名称标识的。对象名称与MBean相关。如果未指定的加载对象的名称,该类加载器加载的MBean服务器将使用。如果MBean对象名是无效的,必须通过实施MBeanRegistration
MBean接口和从preRegister
方法返回的名称提供它自己的名字。
如果这种方法成功地创建一个MBean,通知了above派。
createMBean
接口
MBeanServerConnection
className
要实例化MBean类名称。
name
- MBean对象名称。可能是空的。
loaderName
-类加载器对象的名字被使用。
params
-数组包含要调用的构造函数的参数。
signature
-数组包含要调用构造函数的签名。
ObjectInstance
,含有
ObjectName
和新实例化MBean的java类的名称。如果有
ObjectName
是
n
,包含java类的名字是
getMBeanInfo(n)
.getClassName()
。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:类名传入的参数为空,
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服务器注册。
MBeanRegistration
ObjectInstance registerMBean(Object object, ObjectName name) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException
注册一个已存在的对象与MBean服务器的MBean。如果对象名是无效的,必须通过实施MBeanRegistration
MBean接口和从preRegister
方法返回的名称提供它自己的名字。
如果这个方法成功注册MBean,通知了above派。
object
的MBean被注册为一个MBean。
name
- MBean对象名称。可能是空的。
ObjectInstance
,含有
ObjectName
和新注册MBean的java类的名称。如果有
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
:对象传递参数为空或没有指定对象的名称。
MBeanRegistration
void unregisterMBean(ObjectName name) throws InstanceNotFoundException, MBeanRegistrationException
如果这种方法成功的将一个MBean,通知了above派。
unregisterMBean
接口
MBeanServerConnection
name
- MBean对象名称未登记。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:参数对象名称为空或MBean当你试图注销是
MBeanServerDelegate
MBean。
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方法抛出异常。
MBeanRegistration
ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException
MBeanServerConnection
ObjectInstance
。
getObjectInstance
接口
MBeanServerConnection
name
- MBean对象名称。
ObjectInstance
。所含的
ObjectName
是
name
和包含的类的名字是
getMBeanInfo(name)
.getClassName()
。
InstanceNotFoundException
的MBean指定不在MBean服务器注册。
Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
ObjectName
和/或查询表达式匹配指定的MBean,特定的MBean。当对象名称为空或没有域和键属性被指定时,所有对象都将被选择(如果指定了查询)。它返回
ObjectInstance
对象集(含
ObjectName
和java类的名称)为选定的MBeans。
queryMBeans
接口
MBeanServerConnection
name
-对象名称模式识别的MBean进行检索。如果为空或没有域和关键属性被指定,所有MBeans注册将被收回。
query
-查询表达式适用于选择MBeans。如果没有查询表达式将用于选择MBeans。
ObjectInstance
MBeans。如果没有MBean满足查询,则返回一个空列表。
RuntimeOperationsException
Set<ObjectName> queryNames(ObjectName name, QueryExp query)
ObjectName
和/或查询表达式匹配指定的MBean的名字,一个特定的MBean名(相当于测试是否一个MBean注册)。当对象名称为空或没有域和键属性被指定时,所有对象都被选择(如果指定了查询)。它返回的MBeans选择objectnames集。
queryNames
接口
MBeanServerConnection
name
-对象名称模式识别的MBean名进行检索。如果为空或没有域和关键属性被指定,所有注册MBean的名字将被收回。
query
-查询表达式适用于选择MBeans。如果没有查询表达式将用于选择MBeans。
RuntimeOperationsException
boolean isRegistered(ObjectName name)
MBeanServerConnection
isRegistered
接口
MBeanServerConnection
name
- MBean对象名称进行检查。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:参数对象名称为空。
Integer getMBeanCount()
getMBeanCount
接口
MBeanServerConnection
Object getAttribute(ObjectName name, String attribute) throws MBeanException, AttributeNotFoundException, InstanceNotFoundException, ReflectionException
MBeanServerConnection
getAttribute
接口
MBeanServerConnection
name
-对象名称的MBean的属性进行检索。
attribute
-指定要检索的属性的名称。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:参数对象名称参数为空或属性为空。
MBeanException
包例外MBean的吸气剂扔。
AttributeNotFoundException
-属性中指定的MBean无法访问。
InstanceNotFoundException
的MBean指定不在MBean服务器注册。
ReflectionException
-包装
java.lang.Exception
扔在试图调用setter。
MBeanServerConnection.setAttribute(javax.management.ObjectName, javax.management.Attribute)
AttributeList getAttributes(ObjectName name, String[] attributes) throws InstanceNotFoundException, ReflectionException
MBeanServerConnection
获取一个名为MBean的几个属性的值。MBean的对象名称标识。
如果一个或多个属性不能被检索,因为某些原因,他们将从返回的AttributeList
略。来电者应该检查列表的大小为attributes
阵列相同。发现什么问题,防止从一个给定的检索属性,该属性getAttribute
电话。
这里是调用此方法的一个示例,并检查它成功地检索所有请求的属性:
字符串attrnames = []…;AttributeList列表= mbeanserverconnection getattributes(对象,attrnames);如果(列表。size() = = attrnames。长度)系统的输入(“所有属性检索成功”);别的{List<String>
失踪=新ArrayList<String>
(Arrays.asList
(attrnames));为(属性:列表。aslist())删除(A. getname())失踪;系统的输入(“没有检索:“+失踪);}
getAttributes
接口
MBeanServerConnection
name
-对象名称的MBean,检索的属性。
attributes
-目录的属性进行检索。
RuntimeOperationsException
包装一
java.lang.IllegalArgumentException
:参数对象名称参数为空或属性为空。
InstanceNotFoundException
的MBean指定不在MBean服务器注册。
ReflectionException
-例外发生在试图调用一个动态MBean的getattributes方法。
MBeanServerConnection.setAttributes(javax.management.ObjectName, javax.management.AttributeList)
void setAttribute(ObjectName name, Attribute attribute) throws InstanceNotFoundException, AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
MBeanServerConnection
setAttribute
接口
MBeanServerConnection
name
- MBean的属性可以设置名称。
attribute
-属性要设置的识别和可设置的值。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:参数对象名称参数为空或属性为空。
InstanceNotFoundException
的MBean指定不在MBean服务器注册。
AttributeNotFoundException
-属性中指定的MBean无法访问。
InvalidAttributeValueException
为属性指定的值无效。
MBeanException
包例外MBean的setter抛出。
ReflectionException
-包装
java.lang.Exception
扔在试图调用setter。
MBeanServerConnection.getAttribute(javax.management.ObjectName, java.lang.String)
AttributeList setAttributes(ObjectName name, AttributeList attributes) throws InstanceNotFoundException, ReflectionException
MBeanServerConnection
套一名叫MBean的几个属性的值。MBean的对象名称标识。
如果一个或多个属性不能被设置,因为某些原因,他们将从返回的AttributeList
略。调用者应该检查输入AttributeList
大小作为输出相同。发现什么问题,防止从一个给定的检索属性,通常可以称为属性setAttribute
,虽然这是没有保证的工作。(例如,两个属性的值可能被拒绝,因为它们是彼此不一致的。设置其中一个可能是允许的。
这里是调用此方法的一个示例,并检查它成功地设置了所有请求的属性:
AttributeList inputattrs =…;outputattrs AttributeList mbeanserverconnection setattributes(=。对象,inputattrs);如果(inputattrs。size() = = outputattrs。size())系统的输入(“所有属性设置成功”);别的{ List<String>
失踪=新z-9190db93-9a49-43b8-8b2b- 3aabd5bbd961();为(属性:inputattrs。aslist())添加(A getname())失踪;为(属性:outputattrs。aslist())删除(A. getname())失踪;系统的输入(“没有设置:“+失踪);}
setAttributes
接口
MBeanServerConnection
name
-对象名称的MBean的属性来设置。
attributes
-目录属性:属性的识别是集和它们的值被设置为。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:参数对象名称参数为空或属性为空。
InstanceNotFoundException
的MBean指定不在MBean服务器注册。
ReflectionException
-例外发生在试图调用一个动态MBean的getattributes方法。
MBeanServerConnection.getAttributes(javax.management.ObjectName, java.lang.String[])
Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException
MBeanServerConnection
调用MBean操作。
因为一个signature
分化可能超载操作的需要,这是很简单的调用操作尽可能通过MBean proxy。例如,假设你有一个标准的MBean接口这样:
FooMBean的公共接口{public int countmatches(字符串[ ]模式,布尔忽略大小写);}
的countMatches
操作可以调用如下:
字符串mypatterns = []…;int数=(整数)mbeanserverconnection调用(。对象,“countmatches”,新的对象[ ] { mypatterns,真},新的字符串的字符串[ ] [ ] {。类。getname(),布尔。类getname() });
或者,它可以通过一个代理调用如下:
字符串mypatterns = []…;foombean fooproxy = JMX。newmbeanproxy(mbeanserverconnection、对象、FooMBean类);int数= fooproxy countmatches(mypatterns,真的);
invoke
接口
MBeanServerConnection
name
-对象名称的MBean的方法被调用。
operationName
-操作的名称被调用。
params
-一个数组包含的参数设置操作时调用
signature
-一个数组包含操作的签名,通过
Class.getName()
返回格式中的类名称的数组。该类的对象将使用相同的类装载器是用于装载MBean操作的调用加载。
InstanceNotFoundException
的MBean指定不在MBean服务器注册。
MBeanException
包例外MBean的方法被调用。
ReflectionException
-包装
java.lang.Exception
扔在试图调用的方法。
String getDefaultDomain()
MBeanServerConnection
getDefaultDomain
接口
MBeanServerConnection
String[] getDomains()
MBeanServerConnection
返回内任何MBean目前注册名单。一个字符串中返回的数组的当且仅当至少有一个MBean的对象的getDomain()
等于字符串注册。返回数组中的字符串的顺序没有定义。
getDomains
接口
MBeanServerConnection
void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
添加一个监听器注册MBean。通过MBean发出的通知将被转发给听众。
如果源的通知是一个MBean对象MBean服务器将取代了MBean的对象。否则源是不变的。addNotificationListener
接口
MBeanServerConnection
name
-名称的MBean的听众应该增加。
listener
-监听器对象将处理由注册MBean发出的通知。
filter
-滤波对象。如果过滤器为空,则在处理通知之前没有进行过滤。
handback
-上下文被发送到听者的通知时发出的。
InstanceNotFoundException
的MBean提供的名称不符合任何注册MBean。
MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener)
,
MBeanServerConnection.removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException
添加一个监听器注册MBean。
一个由MBean发出的通知将被转发给听者的MBeanServer。如果源的通知是一个MBean对象MBean服务器将取代了MBean的对象。否则源是不变的。
接收通知的侦听器对象是在该方法被调用时注册的一个给定名称的一个。即使它随后未注册,它将继续接收通知。
addNotificationListener
接口
MBeanServerConnection
name
-名称的MBean的听众应该增加。
listener
-监听器将处理由注册MBean发出的通知对象的名称。
filter
-滤波对象。如果过滤器为空,则在处理通知之前没有进行过滤。
handback
-上下文被发送到听者的通知时发出的。
RuntimeOperationsException
-包装
IllegalArgumentException
。MBean的命名
listener
存在但没有实施
NotificationListener
接口。
InstanceNotFoundException
-通知监听器MBean名或通知广播员不符合任何注册MBean。
MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName)
,
MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
void removeNotificationListener(ObjectName name, ObjectName listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection
如果监听器注册超过一次,也许不同的过滤器或回调,这一方法将删除所有的注册。
removeNotificationListener
接口
MBeanServerConnection
name
-名称的MBean的听众应该被删除。
listener
-监听器对象名称被删除。
InstanceNotFoundException
的MBean提供的名称不符合任何注册MBean。
ListenerNotFoundException
-听者不在MBean注册。
MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection
从注册MBean移除侦听器。
MBean必须完全匹配listener
听众了,filter
,和handback
参数。如果有多于一个这样的侦听器,只有一个被删除。
的filter
和handback
参数可以为null,如果他们在听众被删除是空的。
removeNotificationListener
接口
MBeanServerConnection
name
-名称的MBean的听众应该被删除。
listener
-监听器对象名称被删除。
filter
-过滤器,当你添加指定的。
handback
-盖印,指定当听众加入。
InstanceNotFoundException
的MBean提供的名称不符合任何注册MBean。
ListenerNotFoundException
-听者不在MBean注册,或不与给定的滤波器和盖印注册。
MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
void removeNotificationListener(ObjectName name, NotificationListener listener) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection
从注册MBean移除侦听器。
如果监听器注册超过一次,也许不同的过滤器或回调,这一方法将删除所有的注册。
removeNotificationListener
接口
MBeanServerConnection
name
-名称的MBean的听众应该被删除。
listener
-听者被删除。
InstanceNotFoundException
的MBean提供的名称不符合任何注册MBean。
ListenerNotFoundException
-听者不在MBean注册。
MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback) throws InstanceNotFoundException, ListenerNotFoundException
MBeanServerConnection
从注册MBean移除侦听器。
MBean必须完全匹配listener
听众了,filter
,和handback
参数。如果有多于一个这样的侦听器,只有一个被删除。
的filter
和handback
参数可以为null,如果他们在听众被删除是空的。
removeNotificationListener
接口
MBeanServerConnection
name
-名称的MBean的听众应该被删除。
listener
-听者被删除。
filter
-过滤器,当你添加指定的。
handback
-盖印,指定当听众加入。
InstanceNotFoundException
的MBean提供的名称不符合任何注册MBean。
ListenerNotFoundException
-听者不在MBean注册,或不与给定的滤波器和盖印注册。
MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
MBeanInfo getMBeanInfo(ObjectName name) throws InstanceNotFoundException, IntrospectionException, ReflectionException
MBeanServerConnection
getMBeanInfo
接口
MBeanServerConnection
name
- MBean名分析
MBeanInfo
允许这个MBean的所有属性和操作的检索实例。
InstanceNotFoundException
-没有发现指定的MBean。
IntrospectionException
-例外发生在反思。
ReflectionException
-例外发生在试图调用一个动态MBean的getmbeaninfo。
boolean isInstanceOf(ObjectName name, String className) throws InstanceNotFoundException
MBeanServerConnection
如果指定的MBean是指定类的实例返回true,否则为false。
如果name
并不叫MBean,这个方法会InstanceNotFoundException
。
否则,let
X是MBean的命名name
,
L是X的类装载器,
N是X的MBeanInfo
类名。
如果n等于className
,结果是真的。
否则,如果我成功加载className
X是这个类的一个实例,结果是真的。
否则,如果我成功加载N和className
,第二类是分配从第一,结果是真的。
否则,结果是假的。
isInstanceOf
接口
MBeanServerConnection
name
- MBean的
ObjectName
。
className
-类的名字。
InstanceNotFoundException
的MBean指定不在MBean服务器注册。
Class.isInstance(java.lang.Object)
Object instantiate(String className) throws ReflectionException, MBeanException
使用类加载器实例化所有的MBean服务器的Class Loader Repository
注册列表对象。对象的类应该有一个公共构造函数。此方法返回新创建的对象的引用。新创建的对象不在MBean服务器注册。
这种方法相当于instantiate(className, (Object[]) null, (String[]) null)
。
className
-对象的类的名称被实例化。
ReflectionException
-包装
java.lang.ClassNotFoundException
或
java.lang.Exception
时试图调用对象的构造函数。
MBeanException
-对象的构造函数抛出异常
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:类名传入参数为空。
Object instantiate(String className, ObjectName loaderName) throws ReflectionException, MBeanException, InstanceNotFoundException
使用指定的ObjectName
实例化的类加载器对象。如果程序名称是空的,该类加载器加载的MBean服务器将使用。对象的类应该有一个公共构造函数。此方法返回新创建的对象的引用。新创建的对象不在MBean服务器注册。
这种方法相当于instantiate(className, loaderName, (Object[]) null, (String[]) null)
。
className
- MBean类名称被实例化。
loaderName
-类加载器对象的名字被使用。
ReflectionException
-包装
java.lang.ClassNotFoundException
或
java.lang.Exception
时试图调用对象的构造函数。
MBeanException
-对象的构造函数抛出异常。
InstanceNotFoundException
-指定的类加载器不注册MBeanServer。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:类名传入参数为空。
Object instantiate(String className, Object[] params, String[] signature) throws ReflectionException, MBeanException
使用类加载器实例化所有的Class Loader Repository
注册MBean服务器的列表对象。对象的类应该有一个公共构造函数。调用返回一个对新创建的对象的引用。新创建的对象不在MBean服务器注册。
className
-对象的类的名称被实例化。
params
-数组包含要调用的构造函数的参数。
signature
-数组包含要调用构造函数的签名。
ReflectionException
-包装
java.lang.ClassNotFoundException
或
java.lang.Exception
时试图调用对象的构造函数。
MBeanException
-对象的构造函数抛出异常
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:类名传入参数为空。
Object instantiate(String className, ObjectName loaderName, Object[] params, String[] signature) throws ReflectionException, MBeanException, InstanceNotFoundException
实例化一个对象。要使用的类装载器是由它的对象名称标识的。如果Loader对象名称是无效的,该类加载器加载的MBean服务器将使用。对象的类应该有一个公共构造函数。调用返回一个对新创建的对象的引用。新创建的对象不在MBean服务器注册。
className
-对象的类的名称被实例化。
params
-数组包含要调用的构造函数的参数。
signature
-数组包含要调用构造函数的签名。
loaderName
-类加载器对象的名字被使用。
ReflectionException
-包装
java.lang.ClassNotFoundException
或
java.lang.Exception
时试图调用对象的构造函数。
MBeanException
-对象的构造函数抛出异常
InstanceNotFoundException
-指定的类装载器是不是在MBean服务器注册。
RuntimeOperationsException
-包装
java.lang.IllegalArgumentException
:类名传入参数为空。
@Deprecated ObjectInputStream deserialize(ObjectName name, byte[] data) throws InstanceNotFoundException, OperationsException
getClassLoaderFor
获得适当的反序列化的类装载器。
在反序列化一个MBean类加载器的背景下一个字节数组。
name
-的类加载器应该用于反序列化的MBean的名字。
data
-不sererialized字节数组。
InstanceNotFoundException
的MBean指定是找不到的。
OperationsException
-任何常见的输入/输出相关异常。
@Deprecated ObjectInputStream deserialize(String className, byte[] data) throws OperationsException, ReflectionException
getClassLoaderRepository()
获得类加载器存储库,用它来反序列化。
在反序列化一个MBean类装载器下一个字节数组。类装载器是通过Class Loader Repository
类className
载。所得到的类的类装入器是一个使用。
className
-的类加载器应该用于反序列化的类的名称。
data
-不sererialized字节数组。
OperationsException
-任何常见的输入/输出相关异常。
ReflectionException
-指定类不能通过类加载器加载库
@Deprecated ObjectInputStream deserialize(String className, ObjectName loaderName, byte[] data) throws InstanceNotFoundException, OperationsException, ReflectionException
getClassLoader
获得反序列化的类装载器。
在反序列化一个MBean类装载器下一个字节数组。类加载器加载的类是一个名为“类名”。指定要用于加载指定的类的类装载器的名称。如果为空,MBean服务器的类装载器将使用。
className
-的类加载器应该用于反序列化的类的名称。
data
-不sererialized字节数组。
loaderName
-类加载器的名称是用于加载指定的类。如果为空,MBean服务器的类装载器将使用。
InstanceNotFoundException
-指定的类加载器MBean是找不到的。
OperationsException
-任何常见的输入/输出相关异常。
ReflectionException
-指定类不能被指定的类加载器加载。
ClassLoader getClassLoaderFor(ObjectName mbeanName) throws InstanceNotFoundException
返回ClassLoader
,用于加载的名叫MBean的课。
mbeanName
- MBean的对象。
.loadClass(s)
结果为任何字符串S l.loadClass(s)
相同。InstanceNotFoundException
如果叫MBean没有找到。
ClassLoader getClassLoader(ObjectName loaderName) throws InstanceNotFoundException
返回指定的ClassLoader
。
loaderName
-类的对象。可能是无效的,在这种情况下,ClassLoader返回MBean服务器自身的。
.loadClass(s)
结果为任何字符串S l.loadClass(s)
相同。InstanceNotFoundException
如果叫ClassLoader没有找到。
ClassLoaderRepository getClassLoaderRepository()
返回这个classloaderrepository MBeanServer。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.