uTools-Manuals/docs/java/javax/management/remote/JMXConnectorFactory.html

341 lines
23 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.remote
</div>
<h2 class="title" title="Class JMXConnectorFactory">Class JMXConnectorFactory</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.remote.JMXConnectorFactory</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public class <span class="typeNameLabel">JMXConnectorFactory</span>
extends <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<p> <span>工厂创建JMX API连接器客户端。</span> <span>没有这个类的实例。</span> </p>
<p> <span>连接通常使用<a href="../../../javax/management/remote/JMXConnectorFactory.html#connect-javax.management.remote.JMXServiceURL-">此类的<code>connect</code></a>方法。</span> <span>更高级的应用程序可以分离连接器客户端的创建,使用<a href="../../../javax/management/remote/JMXConnectorFactory.html#newJMXConnector-javax.management.remote.JMXServiceURL-java.util.Map-"><code>newJMXConnector</code></a>和建立连接本身,使用<a href="../../../javax/management/remote/JMXConnector.html#connect-java.util.Map-"><code>JMXConnector.connect(Map)</code></a></span> </p>
<p> <span>每个客户<a href="../../../javax/management/remote/JMXConnectorProvider.html" title="javax.management.remote中的接口">端由<code>JMXConnectorProvider</code></a>的实例创建。</span> <span>这个实例如下。</span> <span>假设给定的<a href="../../../javax/management/remote/JMXServiceURL.html" title="javax.management.remote中的类"><code>JMXServiceURL</code></a>看起来像<code>"service:jmx:<em>protocol</em>:<em>remainder</em>"</code></span> <span>那么工厂将尝试找到适合的<a href="../../../javax/management/remote/JMXConnectorProvider.html" title="javax.management.remote中的接口"><code>JMXConnectorProvider</code></a><code><em>protocol</em></code></span> <span><em>protocol</em>中的字符<code>+</code><code>-</code><code><em>protocol</em></code>分别由<code>.</code><code>_</code>替代。</span> </p>
<p> <span>搜索<em>提供程序包列表</em>如下:</span> </p>
<ol>
<li> <span>如果<code>environment</code>参数为<a href="../../../javax/management/remote/JMXConnectorFactory.html#newJMXConnector-javax.management.remote.JMXServiceURL-java.util.Map-"><code>newJMXConnector</code></a>包含密钥<code>jmx.remote.protocol.provider.pkgs</code>则关联值为提供程序包列表。</span> </li>
<li> <span>否则,如果系统属性<code>jmx.remote.protocol.provider.pkgs</code>存在,则其值为提供程序包列表。</span> </li>
<li> <span>否则,没有提供程序包列表。</span> </li>
</ol>
<p> <span>提供程序包列表是一个字符串,被解释为用垂直条( <code>|</code> 分隔的非空Java包名称的列表。</span> <span>如果字符串为空,那么提供程序包列表也是如此。</span> <span>如果提供程序包列表不是String或者包含一个空字符串的元素则会抛出<a href="../../../javax/management/remote/JMXProviderException.html" title="javax.management.remote中的类"><code>JMXProviderException</code></a></span> </p>
<p> <span>如果提供程序包列表存在且不为空,则对于列表的每个元素<code><em>pkg</em></code> ,工厂将尝试加载类</span> </p>
<blockquote>
<span><code><em>pkg</em>.<em>protocol</em>.ClientProvider</code></span>
</blockquote>
<p> <span>如果<code>environment</code> <code>newJMXConnector</code> <a href="../../../javax/management/remote/JMXConnectorFactory.html#newJMXConnector-javax.management.remote.JMXServiceURL-java.util.Map-">参数</a>包含关键字<code>jmx.remote.protocol.provider.class.loader</code>则相关联的值是用于加载提供程序的类加载器。</span> <span>如果关联的值不是一个实例<a href="../../../java/lang/ClassLoader.html" title="java.lang中的类"><code>ClassLoader</code></a> ,一个<a href="../../../java/lang/IllegalArgumentException.html" title="java.lang中的类"><code>IllegalArgumentException</code></a>被抛出。</span> </p>
<p> <span>如果<code>jmx.remote.protocol.provider.class.loader</code>关键是不存在<code>environment</code>参数,则使用调用线程的上下文类加载器。</span> </p>
<p> <span>如果加载此类的尝试产生了一个<a href="../../../java/lang/ClassNotFoundException.html" title="java.lang中的类"><code>ClassNotFoundException</code></a> ,则处理程序的搜索将继续列表的下一个元素。</span> </p>
<p> <span>否则,找到的提供商的问题由<a href="../../../javax/management/remote/JMXProviderException.html" title="javax.management.remote中的类"><code>JMXProviderException</code></a>表示,其<a href="../../../javax/management/remote/JMXProviderException.html#getCause--"><code><em>cause</em></code></a>表示基础异常,如下所示:</span> </p>
<ul>
<li> <span>如果加载类的尝试产生除<code>ClassNotFoundException</code>之外的<code>ClassNotFoundException</code> ,那就是<em>原因</em> ;</span> </li>
<li> <span>如果<a href="../../../java/lang/Class.html#newInstance--"><code>Class.newInstance()</code></a>为该类产生异常,那就是<em>原因</em></span> </li>
</ul>
<p> <span>如果没有提供者通过上述步骤找到,包括没有提供程序包列表的默认情况,那么实现将使用自己的提供者为<code><em>protocol</em></code> ,否则将抛出<code>MalformedURLException</code>如果没有)。</span> <span>实施可以选择通过其他方式查找提供商。</span> <span>例如,它可以支持<a href="../../../../technotes/guides/jar/jar.html#Service Provider">JAR conventions for service providers</a> ,其中服务接口是<code>JMXConnectorProvider</code></span> </p>
<p> <span>每个实现必须支持具有默认RMI传输的RMI连接器协议用串<code>rmi</code></span> <span>实现可以可选地支持具有用字符串<code>iiop</code>的RMI / IIOP传输的RMI连接器协议。</span> </p>
<p> <span>一旦找到提供商, <code>newJMXConnector</code>方法的结果是在提供商上调用<a href="../../../javax/management/remote/JMXConnectorProvider.html#newJMXConnector-javax.management.remote.JMXServiceURL-java.util.Map-"><code>newJMXConnector</code></a>的结果。</span> </p>
<p> <span><code>Map</code>传递给参数<code>JMXConnectorProvider</code>是一个新的只读<code>Map</code>包含所有均在条目<code>environment</code>参数<a href="../../../javax/management/remote/JMXConnectorFactory.html#newJMXConnector-javax.management.remote.JMXServiceURL-java.util.Map-"><code>JMXConnectorFactory.newJMXConnector</code></a> ,如果有一个。</span> <span>此外,如果<code>jmx.remote.protocol.provider.class.loader</code>关键是不存在<code>environment</code>参数,它被添加到新的只读<code>Map</code></span> <span>关联的值是调用线程的上下文类加载器。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.5
</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/remote/JMXConnectorFactory.html#DEFAULT_CLASS_LOADER">DEFAULT_CLASS_LOADER</a></span></code>
<div class="block">
指定默认类加载器的属性的名称。
</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/remote/JMXConnectorFactory.html#PROTOCOL_PROVIDER_CLASS_LOADER">PROTOCOL_PROVIDER_CLASS_LOADER</a></span></code>
<div class="block">
指定加载协议提供程序的类加载器的属性的名称。
</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/remote/JMXConnectorFactory.html#PROTOCOL_PROVIDER_PACKAGES">PROTOCOL_PROVIDER_PACKAGES</a></span></code>
<div class="block">
指定在查找协议的处理程序时查询的提供程序包的属性的名称。
</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 <a href="../../../javax/management/remote/JMXConnector.html" title="interface in javax.management.remote">JMXConnector</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/management/remote/JMXConnectorFactory.html#connect-javax.management.remote.JMXServiceURL-">connect</a></span>(<a href="../../../javax/management/remote/JMXServiceURL.html" title="class in javax.management.remote">JMXServiceURL</a> serviceURL)</code>
<div class="block">
创建与给定地址的连接器服务器的连接。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>static <a href="../../../javax/management/remote/JMXConnector.html" title="interface in javax.management.remote">JMXConnector</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/management/remote/JMXConnectorFactory.html#connect-javax.management.remote.JMXServiceURL-java.util.Map-">connect</a></span>(<a href="../../../javax/management/remote/JMXServiceURL.html" title="class in javax.management.remote">JMXServiceURL</a> serviceURL, <a href="../../../java/util/Map.html" title="interface in java.util">Map</a>&lt;<a href="../../../java/lang/String.html" title="class in java.lang">String</a>,?&gt; environment)</code>
<div class="block">
创建与给定地址的连接器服务器的连接。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>static <a href="../../../javax/management/remote/JMXConnector.html" title="interface in javax.management.remote">JMXConnector</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/management/remote/JMXConnectorFactory.html#newJMXConnector-javax.management.remote.JMXServiceURL-java.util.Map-">newJMXConnector</a></span>(<a href="../../../javax/management/remote/JMXServiceURL.html" title="class in javax.management.remote">JMXServiceURL</a> serviceURL, <a href="../../../java/util/Map.html" title="interface in java.util">Map</a>&lt;<a href="../../../java/lang/String.html" title="class in java.lang">String</a>,?&gt; environment)</code>
<div class="block">
在给定的地址创建连接器服务器的连接器客户端。
</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_CLASS_LOADER">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>DEFAULT_CLASS_LOADER</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> DEFAULT_CLASS_LOADER</pre>
<div class="block">
<p> <span>指定默认类加载器的属性的名称。</span> <span>此类加载器用于从远程<code>MBeanServerConnection</code>调用反序列化返回值和异常。</span> <span>与此属性关联的值是一个实例<a href="../../../java/lang/ClassLoader.html" title="java.lang中的类"><code>ClassLoader</code></a></span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../constant-values.html#javax.management.remote.JMXConnectorFactory.DEFAULT_CLASS_LOADER">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="PROTOCOL_PROVIDER_PACKAGES">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>PROTOCOL_PROVIDER_PACKAGES</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> PROTOCOL_PROVIDER_PACKAGES</pre>
<div class="block">
<p> <span>指定在查找协议的处理程序时查询的提供程序包的属性的名称。</span> <span>与此属性相关联的值是一个包含名称由竖线分隔的字符串( <code>|</code> )。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../constant-values.html#javax.management.remote.JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="PROTOCOL_PROVIDER_CLASS_LOADER">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>PROTOCOL_PROVIDER_CLASS_LOADER</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> PROTOCOL_PROVIDER_CLASS_LOADER</pre>
<div class="block">
<p> <span>指定加载协议提供程序的类加载器的属性的名称。</span> <span>与此属性关联的值是一个实例<a href="../../../java/lang/ClassLoader.html" title="java.lang中的类"><code>ClassLoader</code></a></span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../constant-values.html#javax.management.remote.JMXConnectorFactory.PROTOCOL_PROVIDER_CLASS_LOADER">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="connect-javax.management.remote.JMXServiceURL-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>connect</h4> <pre>public static <a href="../../../javax/management/remote/JMXConnector.html" title="interface in javax.management.remote">JMXConnector</a> connect(<a href="../../../javax/management/remote/JMXServiceURL.html" title="class in javax.management.remote">JMXServiceURL</a> serviceURL)
throws <a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<p> <span>创建与给定地址的连接器服务器的连接。</span> </p>
<p> <span>此方法相当于<a href="../../../javax/management/remote/JMXConnectorFactory.html#connect-javax.management.remote.JMXServiceURL-java.util.Map-"><code>connect(serviceURL, null)</code></a></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>serviceURL</code> - 要连接的连接器服务器的地址。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个
<code>JMXConnector</code>
<a href="../../../javax/management/remote/JMXConnector.html#connect--"><code>connect</code></a>方法被调用。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果
<code>serviceURL</code>为空。
</dd>
<dd>
<code><a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果连接器客户端或连接由于通信问题而无法建立。
</dd>
<dd>
<code><a href="../../../java/lang/SecurityException.html" title="class in java.lang">SecurityException</a></code> - 如果由于安全原因无法连接。
</dd>
</dl> </li>
</ul> <a name="connect-javax.management.remote.JMXServiceURL-java.util.Map-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>connect</h4> <pre>public static <a href="../../../javax/management/remote/JMXConnector.html" title="interface in javax.management.remote">JMXConnector</a> connect(<a href="../../../javax/management/remote/JMXServiceURL.html" title="class in javax.management.remote">JMXServiceURL</a> serviceURL,
<a href="../../../java/util/Map.html" title="interface in java.util">Map</a>&lt;<a href="../../../java/lang/String.html" title="class in java.lang">String</a>,?&gt; environment)
throws <a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<p> <span>创建与给定地址的连接器服务器的连接。</span> </p>
<p> <span>此方法相当于:</span> </p>
<pre> <span>JMXConnector conn = JMXConnectorFactory.newJMXConnector(serviceURL,
environment);
conn.connect(environment);</span> </pre>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>serviceURL</code> - 要连接的连接器服务器的地址。
</dd>
<dd>
<span><code>environment</code> - 一组用于确定连接的属性。</span>
<span>此参数可以为null。</span>
<span>此地图中的键必须是字符串。</span>
<span>每个关联值的适当类型取决于属性。</span>
<span><code>environment</code>的内容不会被此呼叫更改。</span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>一个<code>JMXConnector</code>代表新建的连接。</span>
<span>每次成功调用此方法都会产生不同的对象。</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>serviceURL</code>为null。
</dd>
<dd>
<code><a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果连接器客户端或连接由于通信问题而无法建立。
</dd>
<dd>
<code><a href="../../../java/lang/SecurityException.html" title="class in java.lang">SecurityException</a></code> - 如果由于安全原因无法连接。
</dd>
</dl> </li>
</ul> <a name="newJMXConnector-javax.management.remote.JMXServiceURL-java.util.Map-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>newJMXConnector</h4> <pre>public static <a href="../../../javax/management/remote/JMXConnector.html" title="interface in javax.management.remote">JMXConnector</a> newJMXConnector(<a href="../../../javax/management/remote/JMXServiceURL.html" title="class in javax.management.remote">JMXServiceURL</a> serviceURL,
<a href="../../../java/util/Map.html" title="interface in java.util">Map</a>&lt;<a href="../../../java/lang/String.html" title="class in java.lang">String</a>,?&gt; environment)
throws <a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<p> <span>在给定的地址创建连接器服务器的连接器客户端。</span> <span>在调用<a href="../../../javax/management/remote/JMXConnector.html#connect-java.util.Map-"><code>connect</code></a>方法之前,结果客户端不连接。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>serviceURL</code> - 要连接的连接器服务器的地址。
</dd>
<dd>
<span><code>environment</code> - 一组用于确定连接的属性。</span>
<span>此参数可以为null。</span>
<span>此地图中的键必须是字符串。</span>
<span>每个关联值的适当类型取决于属性。</span>
<span><code>environment</code>的内容不会被此呼叫更改。</span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>一个<code>JMXConnector</code>新的连接器客户端的JMXConnector。</span>
<span>每次成功调用此方法都会产生不同的对象。</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>serviceURL</code>为空。
</dd>
<dd>
<code><a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果由于通信问题导致连接器客户端无法创建。
</dd>
<dd>
<code><a href="../../../java/net/MalformedURLException.html" title="class in java.net">MalformedURLException</a></code> -如果没有供应商在协议
<code>serviceURL</code>
</dd>
<dd>
<code><a href="../../../javax/management/remote/JMXProviderException.html" title="class in javax.management.remote">JMXProviderException</a></code> - 如果在
<code>serviceURL</code>中有协议的提供者,但由于某种原因不能使用。
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>