586 lines
36 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
compact3
</div>
<div class="subTitle">
javax.management
</div>
<h2 class="title" title="Class JMX">Class JMX</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>javax.management.JMX</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public class <span class="typeNameLabel">JMX</span>
extends <a href="../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<span>来自JMX API的静态方法。</span>
<span>没有这个类的实例。</span>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.6
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- --> </a> <h3>Field Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Field Summary table, listing fields, and an explanation">
<caption>
<span>Fields</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#DEFAULT_VALUE_FIELD">DEFAULT_VALUE_FIELD</a></span></code>
<div class="block">
<a href="Descriptor.html#defaultValue"><code>defaultValue</code></a>字段的名称。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#IMMUTABLE_INFO_FIELD">IMMUTABLE_INFO_FIELD</a></span></code>
<div class="block">
<a href="Descriptor.html#immutableInfo"><code>immutableInfo</code></a>字段的名称。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#INTERFACE_CLASS_NAME_FIELD">INTERFACE_CLASS_NAME_FIELD</a></span></code>
<div class="block">
<a href="Descriptor.html#interfaceClassName"><code>interfaceClassName</code></a>字段的名称。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#LEGAL_VALUES_FIELD">LEGAL_VALUES_FIELD</a></span></code>
<div class="block">
<a href="Descriptor.html#legalValues"><code>legalValues</code></a>字段的名称。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#MAX_VALUE_FIELD">MAX_VALUE_FIELD</a></span></code>
<div class="block">
<a href="Descriptor.html#maxValue"><code>maxValue</code></a>字段的名称。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#MIN_VALUE_FIELD">MIN_VALUE_FIELD</a></span></code>
<div class="block">
<a href="Descriptor.html#minValue"><code>minValue</code></a>字段的名称。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#MXBEAN_FIELD">MXBEAN_FIELD</a></span></code>
<div class="block">
<a href="Descriptor.html#mxbean"><code>mxbean</code></a>字段的名称。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#OPEN_TYPE_FIELD">OPEN_TYPE_FIELD</a></span></code>
<div class="block">
<a href="Descriptor.html#openType"><code>openType</code></a>字段的名称。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#ORIGINAL_TYPE_FIELD">ORIGINAL_TYPE_FIELD</a></span></code>
<div class="block">
<a href="Descriptor.html#originalType"><code>originalType</code></a>字段的名称。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t1"><span><a href="javascript:show(1);">静态方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#isMXBeanInterface-java.lang.Class-">isMXBeanInterface</a></span>(<a href="../../java/lang/Class.html" title="class in java.lang"></a>&lt;?&gt; interfaceClass)</code>
<div class="block">
测试接口是否是MXBean接口。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>static &lt;T&gt; T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-">newMBeanProxy</a></span>(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection, <a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName, <a href="../../java/lang/Class.html" title="class in java.lang"></a>&lt;T&gt; interfaceClass)</code>
<div class="block">
在本地或远程MBean服务器中为标准MBean创建代理。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>static &lt;T&gt; T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-boolean-">newMBeanProxy</a></span>(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection, <a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName, <a href="../../java/lang/Class.html" title="class in java.lang"></a>&lt;T&gt; interfaceClass, boolean notificationEmitter)</code>
<div class="block">
<span>在本地或远程MBean服务器中为标准MBean创建代理该服务器也可以支持<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a>的方法。</span>
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>static &lt;T&gt; T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#newMXBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-">newMXBeanProxy</a></span>(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection, <a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName, <a href="../../java/lang/Class.html" title="class in java.lang"></a>&lt;T&gt; interfaceClass)</code>
<div class="block">
在本地或远程MBean服务器中为MXBean创建代理。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>static &lt;T&gt; T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/management/JMX.html#newMXBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-boolean-">newMXBeanProxy</a></span>(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection, <a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName, <a href="../../java/lang/Class.html" title="class in java.lang"></a>&lt;T&gt; interfaceClass, boolean notificationEmitter)</code>
<div class="block">
<span>在本地或远程MBean服务器中为MXBean创建代理该服务器也可能支持<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a>的方法。</span>
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../java/lang/Object.html#clone--">clone</a>, <a href="../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../java/lang/Object.html#notify--">notify</a>, <a href="../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../java/lang/Object.html#toString--">toString</a>, <a href="../../java/lang/Object.html#wait--">wait</a>, <a href="../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- --> </a> <h3>字段详细信息</h3> <a name="DEFAULT_VALUE_FIELD">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>DEFAULT_VALUE_FIELD</h4> <pre>public static final <a href="../../java/lang/String.html" title="class in java.lang">String</a> DEFAULT_VALUE_FIELD</pre>
<div class="block">
<a href="Descriptor.html#defaultValue"><code>defaultValue</code></a>字段的名称。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../constant-values.html#javax.management.JMX.DEFAULT_VALUE_FIELD">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="IMMUTABLE_INFO_FIELD">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>IMMUTABLE_INFO_FIELD</h4> <pre>public static final <a href="../../java/lang/String.html" title="class in java.lang">String</a> IMMUTABLE_INFO_FIELD</pre>
<div class="block">
<a href="Descriptor.html#immutableInfo"><code>immutableInfo</code></a>字段的名称。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../constant-values.html#javax.management.JMX.IMMUTABLE_INFO_FIELD">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="INTERFACE_CLASS_NAME_FIELD">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>INTERFACE_CLASS_NAME_FIELD</h4> <pre>public static final <a href="../../java/lang/String.html" title="class in java.lang">String</a> INTERFACE_CLASS_NAME_FIELD</pre>
<div class="block">
<a href="Descriptor.html#interfaceClassName"><code>interfaceClassName</code></a>字段的名称。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../constant-values.html#javax.management.JMX.INTERFACE_CLASS_NAME_FIELD">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="LEGAL_VALUES_FIELD">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>LEGAL_VALUES_FIELD</h4> <pre>public static final <a href="../../java/lang/String.html" title="class in java.lang">String</a> LEGAL_VALUES_FIELD</pre>
<div class="block">
<a href="Descriptor.html#legalValues"><code>legalValues</code></a>字段的名称。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../constant-values.html#javax.management.JMX.LEGAL_VALUES_FIELD">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="MAX_VALUE_FIELD">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>MAX_VALUE_FIELD</h4> <pre>public static final <a href="../../java/lang/String.html" title="class in java.lang">String</a> MAX_VALUE_FIELD</pre>
<div class="block">
<a href="Descriptor.html#maxValue"><code>maxValue</code></a>字段的名称。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../constant-values.html#javax.management.JMX.MAX_VALUE_FIELD">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="MIN_VALUE_FIELD">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>MIN_VALUE_FIELD</h4> <pre>public static final <a href="../../java/lang/String.html" title="class in java.lang">String</a> MIN_VALUE_FIELD</pre>
<div class="block">
<a href="Descriptor.html#minValue"><code>minValue</code></a>字段的名称。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../constant-values.html#javax.management.JMX.MIN_VALUE_FIELD">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="MXBEAN_FIELD">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>MXBEAN_FIELD</h4> <pre>public static final <a href="../../java/lang/String.html" title="class in java.lang">String</a> MXBEAN_FIELD</pre>
<div class="block">
<a href="Descriptor.html#mxbean"><code>mxbean</code></a>字段的名称。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../constant-values.html#javax.management.JMX.MXBEAN_FIELD">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="OPEN_TYPE_FIELD">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>OPEN_TYPE_FIELD</h4> <pre>public static final <a href="../../java/lang/String.html" title="class in java.lang">String</a> OPEN_TYPE_FIELD</pre>
<div class="block">
<a href="Descriptor.html#openType"><code>openType</code></a>字段的名称。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../constant-values.html#javax.management.JMX.OPEN_TYPE_FIELD">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="ORIGINAL_TYPE_FIELD">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>ORIGINAL_TYPE_FIELD</h4> <pre>public static final <a href="../../java/lang/String.html" title="class in java.lang">String</a> ORIGINAL_TYPE_FIELD</pre>
<div class="block">
<a href="Descriptor.html#originalType"><code>originalType</code></a>字段的名称。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../constant-values.html#javax.management.JMX.ORIGINAL_TYPE_FIELD">Constant Field Values</a>
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>newMBeanProxy</h4> <pre>public static &lt;T&gt; T newMBeanProxy(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection,
<a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName,
<a href="../../java/lang/Class.html" title="class in java.lang"></a>&lt;T&gt; interfaceClass)</pre>
<div class="block">
<p> <span>在本地或远程MBean服务器中为标准MBean创建代理。</span> </p>
<p> <span>如果你有一个MBean服务器<code>mbs</code>包含一个MBean与<a href="../../javax/management/ObjectName.html" title="javax.management中的类"><code>ObjectName</code></a> <code>name</code> 如果MBean的管理接口由Java接口描述<code>MyMBean</code> 您可以构建这样的MBean的代理</span> </p>
<pre> <span>MyMBean proxy = JMX.newMBeanProxy(mbs, name, MyMBean.class);</span> </pre>
<p> <span>假设,例如, <code>MyMBean</code>看起来像这样:</span> </p>
<pre> <span>public interface MyMBean {
public String getSomeAttribute();
public void setSomeAttribute(String value);
public void someOperation(String param1, int param2);
}</span> </pre>
<p> <span>然后你可以执行:</span> </p>
<ul>
<li> <span><code>proxy.getSomeAttribute()</code>将导致呼叫<code>mbs.</code> <a href="../../javax/management/MBeanServerConnection.html#getAttribute-javax.management.ObjectName-java.lang.String-"><code>getAttribute</code></a> <code>(name, "SomeAttribute")</code></span> </li>
<li> <span><code>proxy.setSomeAttribute("whatever")</code>将导致呼叫<code>mbs.</code> <a href="../../javax/management/MBeanServerConnection.html#setAttribute-javax.management.ObjectName-javax.management.Attribute-"><code>setAttribute</code></a> <code>(name, new Attribute("SomeAttribute", "whatever"))</code></span> </li>
<li> <span><code>proxy.someOperation("param1", 2)</code>将被转换成一个电话<code>mbs.</code> <a href="../../javax/management/MBeanServerConnection.html#invoke-javax.management.ObjectName-java.lang.String-java.lang.Object:A-java.lang.String:A-"><code>invoke</code></a> <code>(name, "someOperation", &lt;etc&gt;)</code></span> </li>
</ul>
<p> <span>该方法返回的对象是<a href="../../java/lang/reflect/Proxy.html" title="class java.lang.reflect"><code>Proxy</code></a> ,其<code>InvocationHandler</code><a href="../../javax/management/MBeanServerInvocationHandler.html" title="javax.management中的类"><code>MBeanServerInvocationHandler</code></a></span> </p>
<p> <span>此方法相当于<a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-boolean-"><code>newMBeanProxy(connection, objectName, interfaceClass, false)</code></a></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数类型</span>
</dt>
<dd>
<code>T</code> - 允许编译器知道如果
<code>interfaceClass</code>参数是
<code>MyMBean.class</code> ,那么返回类型是
<code>MyMBean</code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>connection</code> - 要转发到的MBean服务器。
</dd>
<dd>
<code>objectName</code> - 要转发到的
<code>connection</code>内的MBean的名称。
</dd>
<dd>
<code>interfaceClass</code> - MBean导出的管理界面也将由返回的代理实现。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
新的代理实例。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果
<code>interfaceClass</code>不是
<a href="package-summary.html#mgIface">compliant MBean interface</a>
</dd>
</dl> </li>
</ul> <a name="newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-boolean-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>newMBeanProxy</h4> <pre>public static &lt;T&gt; T newMBeanProxy(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection,
<a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName,
<a href="../../java/lang/Class.html" title="class in java.lang"></a>&lt;T&gt; interfaceClass,
boolean notificationEmitter)</pre>
<div class="block">
<p> <span>在本地或远程MBean服务器中为标准MBean创建代理该服务器也可以支持<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a>的方法。</span> </p>
<p> <span>此方法的行为与<a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-"><code>newMBeanProxy(MBeanServerConnection, ObjectName, Class)</code></a>相同,但如果<code>notificationEmitter</code><code>true</code> 则MBean假定为<a href="../../javax/management/NotificationBroadcaster.html" title="javax.management中的接口"><code>NotificationBroadcaster</code></a><a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a> ,返回的代理将实现<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a>以及<code>interfaceClass</code></span> <span>代理人呼叫<a href="../../javax/management/NotificationBroadcaster.html#addNotificationListener-javax.management.NotificationListener-javax.management.NotificationFilter-java.lang.Object-"><code>NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)</code></a>将会调用<a href="../../javax/management/MBeanServerConnection.html#addNotificationListener-javax.management.ObjectName-javax.management.NotificationListener-javax.management.NotificationFilter-java.lang.Object-"><code>MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)</code></a> ,同样对<a href="../../javax/management/NotificationBroadcaster.html" title="javax.management中的接口"><code>NotificationBroadcaster</code></a><a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a>的其他方法进行<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口">调用</a></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数类型</span>
</dt>
<dd>
<code>T</code> - 允许编译器知道如果
<code>interfaceClass</code>参数是
<code>MyMBean.class</code> ,那么返回类型是
<code>MyMBean</code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>connection</code> - 要转发的MBean服务器。
</dd>
<dd>
<code>objectName</code> - 要转发到的
<code>connection</code>内的MBean的名称。
</dd>
<dd>
<code>interfaceClass</code> - MBean导出的管理界面也将由返回的代理实现。
</dd>
<dd>
<span><code>notificationEmitter</code> -使返回的代理实现<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a>经由其方法转发<code>connection</code></span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
新的代理实例。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果
<code>interfaceClass</code>不是
<a href="package-summary.html#mgIface">compliant MBean interface</a>
</dd>
</dl> </li>
</ul> <a name="newMXBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>newMXBeanProxy</h4> <pre>public static &lt;T&gt; T newMXBeanProxy(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection,
<a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName,
<a href="../../java/lang/Class.html" title="class in java.lang"></a>&lt;T&gt; interfaceClass)</pre>
<div class="block">
<span>在本地或远程MBean服务器中为MXBean创建代理。</span>
<p> <span>如果你有一个MBean服务器<code>mbs</code>包含一个MXBean与<a href="../../javax/management/ObjectName.html" title="javax.management中的类"><code>ObjectName</code></a> <code>name</code> 如果MXBean的管理接口由Java接口描述<code>MyMXBean</code> 您可以构建MXBean的像这样的代理</span> </p>
<pre> <span>MyMXBean proxy = JMX.newMXBeanProxy(mbs, name, MyMXBean.class);</span> </pre>
<p> <span>假设,例如, <code>MyMXBean</code>看起来像这样:</span> </p>
<pre> <span>public interface MyMXBean {
public String getSimpleAttribute();
public void setSimpleAttribute(String value);
public <a href="../../java/lang/management/MemoryUsage.html" title="class in java.lang.management"><code>MemoryUsage</code></a> getMappedAttribute();
public void setMappedAttribute(MemoryUsage memoryUsage);
public MemoryUsage someOperation(String param1, MemoryUsage param2);
}</span> </pre>
<p> <span>然后:</span> </p>
<ul>
<li><p> <span><code>proxy.getSimpleAttribute()</code>将导致致电<code>mbs.</code> <a href="../../javax/management/MBeanServerConnection.html#getAttribute-javax.management.ObjectName-java.lang.String-"><code>getAttribute</code></a> <code>(name, "SimpleAttribute")</code></span> </p></li>
<li><p> <span><code>proxy.setSimpleAttribute("whatever")</code>将会调用<code>mbs.</code> <a href="../../javax/management/MBeanServerConnection.html#setAttribute-javax.management.ObjectName-javax.management.Attribute-"><code>setAttribute</code></a> <code>(name, new Attribute("SimpleAttribute", "whatever"))</code></span> </p><p> <span>因为<code>String</code>是一个<em>简单的类型</em> ,在<a href="../../javax/management/openmbean/SimpleType.html" title="javax.management.openmbean中的类"><code>SimpleType</code></a>的意义上它不会在MXBean的上下文中更改。</span> <span>MXBean代理与<a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-">属性SimpleAttribute</a>的标准MBean代理参见<a href="../../javax/management/JMX.html#newMBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-"><code>newMBeanProxy</code></a> <code>SimpleAttribute</code></span> </p></li>
<li><p> <span><code>proxy.getMappedAttribute()</code>将会调用<code>mbs.getAttribute("MappedAttribute")</code></span> <span>MXBean映射规则意味着属性<code>MappedAttribute</code>的实际类型将为<a href="../../javax/management/openmbean/CompositeData.html" title="javax.management.openmbean中的接口"><code>CompositeData</code></a> ,这是<code>mbs.getAttribute</code>调用将返回的。</span> <span>然后代理将使用MXBean映射规则将<code>CompositeData</code>转换回预期类型<code>MemoryUsage</code></span> </p></li>
<li><p> <span>同样, <code>proxy.setMappedAttribute(memoryUsage)</code>将转换<code>MemoryUsage</code>参数为<code>CompositeData</code>之前调用<code>mbs.setAttribute</code></span> </p></li>
<li><p> <span><code>proxy.someOperation("whatever", memoryUsage)</code><code>MemoryUsage</code>参数转换为<code>CompositeData</code>并调用<code>mbs.invoke</code></span> <span><code>mbs.invoke</code>返回的值也将是<code>CompositeData</code> 代理将使用MXBean映射规则将其转换为预期类型<code>MemoryUsage</code></span> </p></li>
</ul>
<p> <span>该方法返回的对象是<a href="../../java/lang/reflect/Proxy.html" title="class java.lang.reflect"><code>Proxy</code></a> ,其<code>InvocationHandler</code><a href="../../javax/management/MBeanServerInvocationHandler.html" title="javax.management中的类"><code>MBeanServerInvocationHandler</code></a></span> </p>
<p> <span>此方法相当于<a href="../../javax/management/JMX.html#newMXBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-boolean-"><code>newMXBeanProxy(connection, objectName, interfaceClass, false)</code></a></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数类型</span>
</dt>
<dd>
<code>T</code> - 允许编译器知道如果
<code>interfaceClass</code>参数是
<code>MyMXBean.class</code> ,那么返回类型是
<code>MyMXBean</code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>connection</code> - 要转发到的MBean服务器。
</dd>
<dd>
<code>objectName</code> - 要转发到的
<code>connection</code>内的MBean的名称。
</dd>
<dd>
<code>interfaceClass</code> - MXBean接口也将由返回的代理实现。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
新的代理实例。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<span><code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果<code>interfaceClass</code>不是<a href="../../javax/management/MXBean.html" title="javax.management中的注释"><code>compliant MXBean interface</code></a></span>
</dd>
</dl> </li>
</ul> <a name="newMXBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-boolean-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>newMXBeanProxy</h4> <pre>public static &lt;T&gt; T newMXBeanProxy(<a href="../../javax/management/MBeanServerConnection.html" title="interface in javax.management">MBeanServerConnection</a> connection,
<a href="../../javax/management/ObjectName.html" title="class in javax.management">ObjectName</a> objectName,
<a href="../../java/lang/Class.html" title="class in java.lang"></a>&lt;T&gt; interfaceClass,
boolean notificationEmitter)</pre>
<div class="block">
<p> <span>在本地或远程MBean服务器中为MXBean创建代理该服务器也可以支持<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a>的方法。</span> </p>
<p> <span>此方法的行为与<a href="../../javax/management/JMX.html#newMXBeanProxy-javax.management.MBeanServerConnection-javax.management.ObjectName-java.lang.Class-"><code>newMXBeanProxy(MBeanServerConnection, ObjectName, Class)</code></a>相同,但如果<code>notificationEmitter</code><code>true</code> 则MXBean假定为<a href="../../javax/management/NotificationBroadcaster.html" title="javax.management中的接口"><code>NotificationBroadcaster</code></a><a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a> ,返回的代理将实现<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a>以及<code>interfaceClass</code></span> <span>要在通话<a href="../../javax/management/NotificationBroadcaster.html#addNotificationListener-javax.management.NotificationListener-javax.management.NotificationFilter-java.lang.Object-"><code>NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)</code></a>上的代理将导致调用<a href="../../javax/management/MBeanServerConnection.html#addNotificationListener-javax.management.ObjectName-javax.management.NotificationListener-javax.management.NotificationFilter-java.lang.Object-"><code>MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)</code></a> ,同样对于其他方法<a href="../../javax/management/NotificationBroadcaster.html" title="javax.management中的接口"><code>NotificationBroadcaster</code></a><a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数类型</span>
</dt>
<dd>
<code>T</code> - 允许编译器知道如果
<code>interfaceClass</code>参数是
<code>MyMXBean.class</code> ,那么返回类型是
<code>MyMXBean</code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>connection</code> - 要转发到的MBean服务器。
</dd>
<dd>
<code>objectName</code> - 要转发到的
<code>connection</code>内的MBean的名称。
</dd>
<dd>
<code>interfaceClass</code> - MXBean接口也将由返回的代理实现。
</dd>
<dd>
<span><code>notificationEmitter</code> -使返回的代理实现<a href="../../javax/management/NotificationEmitter.html" title="javax.management中的接口"><code>NotificationEmitter</code></a>经由其方法转发<code>connection</code></span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
新的代理实例。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<span><code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果<code>interfaceClass</code>不是<a href="../../javax/management/MXBean.html" title="javax.management中的注释"><code>compliant MXBean interface</code></a></span>
</dd>
</dl> </li>
</ul> <a name="isMXBeanInterface-java.lang.Class-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>isMXBeanInterface</h4> <pre>public static boolean isMXBeanInterface(<a href="../../java/lang/Class.html" title="class in java.lang"></a>&lt;?&gt; interfaceClass)</pre>
<div class="block">
<p> <span>测试接口是否是MXBean接口。</span> <span>界面是一个MXBean界面如果它是公共的注释的是<a href="../../javax/management/MXBean.html" title="javax.management中的注释"><code>@MXBean</code></a><code>@MXBean(true)</code>或者如果它没有一个<code>@MXBean</code>注释,其名称以“ <code>MXBean</code> ”结尾。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>interfaceClass</code> - 候选接口。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>如果<code>interfaceClass</code><a href="../../javax/management/MXBean.html" title="javax.management中的注释"><code>compliant MXBean interface</code>则为true</a></span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果
<code>interfaceClass</code>为空。
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>