java命名空间java.lang.management类managementfactory的类成员方法:
newplatformmxbeanproxy定义及介绍
本文导语:
newplatformmxbeanproxy
public static t newplatformmxbeanproxy(mbeanserverconnection connection,
string mxbeanname,
class mxbeaninterface)
throws ioexception
返回用于给定...
newplatformmxbeanproxy
public static t newplatformmxbeanproxy(mbeanserverconnection connection,
string mxbeanname,
class mxbeaninterface)
throws ioexception
- 返回用于给定 mxbean 名称的平台 mxbean 接口的代理,以便通过给定 mbeanserverconnection 转发其方法调用。
此方法等效于:
proxy.newproxyinstance
(mxbeaninterface.getclassloader(), new class[] { mxbeaninterface }, handler)
其中 handler 是一个 invocationhandler
,对 mxbean 接口的方法调用将调度到其上。此 handler 会在将 mxbean 数据类型的输入参数转发到 mbeanserver 之前将其转换为其映射的开放类型,并将通过 mbeanserver 的 mxbean 方法调用的返回值由开放类型转换为在 mxbean 接口中声明的对应返回类型。
如果 mxbean 是通知发出者(即它实现了 notificationemitter
),则 mxbeaninterface 和 notificationemitter 都将由此代理实现。
注:
- 使用 mxbean 代理可以方便地远程访问正在运行的虚拟机的平台 mxbean。所有对 mxbean 代理的方法调用都被转发到 mbeanserverconnection,当连接器服务器出现通信问题时,可能在其中抛出
ioexception
。如果使用代理远程访问平台 mxbean 的应用程序要访问 mbeanserverconnector 接口,则应该准备捕获 ioexception。
- 当客户端应用程序设计为远程访问正在运行的虚拟机(其版本与该应用程序运行其上的虚拟机版本不同)的 mxbean 时,应当准备捕获
invalidobjectexception
,当 mxbean 代理接收到一个枚举常数的名称,而该名称客户端应用程序中加载的枚举类又缺少此枚举常数时,将抛出此异常。
mbeanserverinvocationhandler
或其 newproxyinstance
方法不能用于为平台 mxbean 创建代理。mbeanserverinvocationhandler 创建的代理对象不会处理类规范中描述的平台 mxbean 的属性。
- 参数:
connection
- 要转发到的目标 mbeanserverconnection。mxbeanname
- 要转发到的 connection 的平台 mxbean。mxbeanname 的格式必须为 objectname
的格式。mxbeaninterface
- 要由代理实现的 mxbean 接口。
- 抛出:
illegalargumentexception
- 如果
- mxbeanname 没有采用有效的
objectname
格式,或者
- connection 中指定的 mxbean 不是由平台提供的 mxbean,或者
- 指定的 mxbean 未在 mbeanserverconnection 中注册,或者
- 指定的 mxbean 不是给定 mxbeaninterface 的实例
ioexception
- 如果在访问 mbeanserverconnection 时出现通信问题。