|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.management.MBeanServerFactory
public class MBeanServerFactory
提供 MBean 服务器引用。没有此类的实例。
从 JMX 1.2 开始,此类使替换默认的 MBeanServer 实现成为可能。使用 MBeanServerBuilder 类实现此替换。可通过 javax.management.builder.initial 系统属性指定要实例化的初始 MBeanServerBuilder 的类。指定的类必须是 MBeanServerBuilder 的公共子类,并且必须具有公共的空构造方法。
默认情况下,如果未指定该属性的值,则创建一个 javax.management.MBeanServerBuilder 的实例。否则,MBeanServerFactory 会试图使用 Thread.currentThread().getContextClassLoader() 加载指定的类,如果该属性值为 null,则使用 Class.forName() 加载指定的类。然后它使用 Class.newInstance() 创建该 Class 的初始实例。如果在此过程中(例如 ClassNotFoundException、InstantiationException)引发已检查异常,则该 MBeanServerFactory 将从 RuntimeException 内传播此异常。
每次需要创建新的 MBeanServer 时都会查询 javax.management.builder.initial 系统属性,并加载该属性所指向的类。如果该类与当前的 MBeanServerBuilder 的类不同,则创建一个新的 MBeanServerBuilder。否则,MBeanServerFactory 可能创建一个新的 MBeanServerBuilder 或重用当前的 MBeanServerBuilder。
如果无法加载该属性所指向的类,或者该属性所指向的类不对应于有效的 MBeanServerBuilder 子类,则抛出一个异常,并且在将 javax.management.builder.initial 系统属性重置为有效值之前,不能创建任何 MBeanServer。
出于某种目的,例如添加一个额外的安全层,MBeanServerBuilder 使得包装默认 MBeanServerBuilder 实现所返回的 MBeanServer 成为可能。
| 方法摘要 | |
|---|---|
static MBeanServer |
createMBeanServer()
返回一个新对象,该对象使用标准的默认域名来实现 MBeanServer 接口。 |
static MBeanServer |
createMBeanServer(String domain)
返回一个新对象,该对象使用指定的默认域名来实现 MBeanServer 接口。 |
static ArrayList<MBeanServer> |
findMBeanServer(String agentId)
返回已注册 MBeanServer 对象的列表。 |
static ClassLoaderRepository |
getClassLoaderRepository(MBeanServer server)
返回给定 MBeanServer 使用的 ClassLoaderRepository。 |
static MBeanServer |
newMBeanServer()
返回一个新对象,该对象使用标准的默认域名来实现 MBeanServer 接口,不保持对此新对象的内部引用。 |
static MBeanServer |
newMBeanServer(String domain)
返回一个新对象,该对象使用指定的默认域名来实现 MBeanServer 接口,不保持对此新对象的内部引用。 |
static void |
releaseMBeanServer(MBeanServer mbeanServer)
移除对已创建 MBeanServer 的内部 MBeanServerFactory 引用。 |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 方法详细信息 |
|---|
public static void releaseMBeanServer(MBeanServer mbeanServer)
mbeanServer - 要移除的 MBeanServer 对象。
IllegalArgumentException - 如果未通过某个 createMBeanServer 方法生成 mbeanServer,或者如果已在该 mbeanServer 上调用 releaseMBeanServer。
SecurityException - 如果有 SecurityManager 且调用者的权限不包括或隐含 MBeanServerPermission("releaseMBeanServer")。public static MBeanServer createMBeanServer()
返回一个新对象,该对象使用标准的默认域名来实现 MBeanServer 接口。如果用户指定的域为 null,则将默认域名用作 MBean 的 ObjectName 的域部分。
标准的默认域名是 DefaultDomain。
内部保存该 MBeanServer 引用。这就允许 findMBeanServer 返回对此 MBeanServer 对象的引用。
此方法等效于 createMBeanServer(null)。
SecurityException - 如果有 SecurityManager 且调用者的权限不包括或隐含 MBeanServerPermission("createMBeanServer")。
JMRuntimeException - 如果属性 javax.management.builder.initial 存在,但是无法通过公共的无参数构造方法实例化它所指定的类;如果已实例化的生成器从其 newMBeanServerDelegate 或 newMBeanServer 方法中返回 null。
ClassCastException - 如果属性 javax.management.builder.initial 存在并且可以被实例化,但是它的分配与 MBeanServerBuilder 不兼容。public static MBeanServer createMBeanServer(String domain)
返回一个新对象,该对象使用指定的默认域名来实现 MBeanServer 接口。如果用户指定的域为 null,则将给定的域名用作 MBean 的 ObjectName 的域部分。
内部保存该 MBeanServer 引用。这就允许 findMBeanServer 返回对此 MBeanServer 对象的引用。
domain - 所创建的 MBeanServer 的默认域名。这是 MBeanServer.getDefaultDomain() 所返回的值。
SecurityException - 如果有 SecurityManager 且调用者的权限不包括或隐含 MBeanServerPermission("createMBeanServer")。
JMRuntimeException - 如果属性 javax.management.builder.initial 存在,但是无法通过公共的无参数构造方法实例化它所指定的类;如果已实例化的生成器从其 newMBeanServerDelegate 或 newMBeanServer 方法中返回 null。
ClassCastException - 如果属性 javax.management.builder.initial 存在并且可以被实例化,但是它的分配与 MBeanServerBuilder 不兼容。public static MBeanServer newMBeanServer()
返回一个新对象,该对象使用标准的默认域名来实现 MBeanServer 接口,不保持对此新对象的内部引用。如果用户指定的域为 null,则将默认域名用作 MBean 的 ObjectName 的域部分。
标准的默认域名是 DefaultDomain。
不保存引用。findMBeanServer 无法返回对此 MBeanServer 对象的引用,但是没有对该 MBeanServer 的引用时,垃圾回收器能够移除该 MBeanServer 对象。
此方法等效于 newMBeanServer(null)。
SecurityException - 如果有 SecurityManager 且调用者的权限不包括或隐含 MBeanServerPermission("newMBeanServer")。
JMRuntimeException - 如果属性 javax.management.builder.initial 存在,但是无法通过公共的无参数构造方法实例化它所指定的类;如果已实例化的生成器从其 newMBeanServerDelegate 或 newMBeanServer 方法中返回 null。
ClassCastException - 如果属性 javax.management.builder.initial 存在并且可以被实例化,但是它的分配与 MBeanServerBuilder 不兼容。public static MBeanServer newMBeanServer(String domain)
返回一个新对象,该对象使用指定的默认域名来实现 MBeanServer 接口,不保持对此新对象的内部引用。如果用户指定的域为 null,则将给定的域名用作 MBean 的 ObjectName 的域部分。
不保存引用。findMBeanServer 无法返回对此 MBeanServer 对象的引用,但是没有对该 MBeanServer 的引用时,垃圾回收器能够移除该 MBeanServer 对象。
domain - 所创建的 MBeanServer 的默认域名。这是 MBeanServer.getDefaultDomain() 将要返回的值。
SecurityException - 如果有 SecurityManager 且调用者的权限不包括或隐含 MBeanServerPermission("newMBeanServer")。
JMRuntimeException - 如果属性 javax.management.builder.initial 存在,但是无法通过公共的无参数构造方法实例化它所指定的类;如果已实例化的生成器从其 newMBeanServerDelegate 或 newMBeanServer 方法中返回 null。
ClassCastException - 如果属性 javax.management.builder.initial 存在并且可以被实例化,但是它的分配与 MBeanServerBuilder 不兼容。public static ArrayList<MBeanServer> findMBeanServer(String agentId)
返回已注册 MBeanServer 对象的列表。已注册的 MBeanServer 对象是通过某个 createMBeanServer 方法创建并且随后未使用 releaseMBeanServer 释放的 MBeanServer。
agentId - 要检索的 MBeanServer 的代理标识符。如果此参数为 null,则返回此 JVM 中的所有已注册 MBeanServer。否则只返回其 id 等于 agentId 的 MBeanServer。MBeanServer 的 id 是其委托 MBean 的 MBeanServerId 属性。
SecurityException - 如果有 SecurityManager 且调用者的权限不包括或隐含 MBeanServerPermission("findMBeanServer")。public static ClassLoaderRepository getClassLoaderRepository(MBeanServer server)
server.getClassLoaderRepository()。
server - 要检查的 MBeanServer。从 JMX 1.2 开始,如果 server 为 null,则结果是 NullPointerException。此行为与 JMX 1.1 中相应实现的行为不同 - 已不再使用 null 值。
SecurityException - 如果有 SecurityManager 且调用者的权限不包括或隐含 MBeanPermission("getClassLoaderRepository")。
NullPointerException - 如果 server 为 null。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。