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

269 lines
19 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 JMXConnectorServerFactory">Class JMXConnectorServerFactory</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.JMXConnectorServerFactory</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public class <span class="typeNameLabel">JMXConnectorServerFactory</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/JMXConnectorServerProvider.html" title="javax.management.remote中的接口"><code>JMXConnectorServerProvider</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/JMXConnectorServerProvider.html" title="javax.management.remote中的接口"><code>JMXConnectorServerProvider</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/JMXConnectorServerFactory.html#newJMXConnectorServer-javax.management.remote.JMXServiceURL-java.util.Map-javax.management.MBeanServer-"><code>newJMXConnectorServer</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>提供程序包列表是一个字符串被解释为由竖线分隔的非空Java包名称列表 <code>|</code> )。</span> <span>如果字符串为空,那么提供程序包列表也是如此。</span> <span>如果提供程序包列表不是字符串,或者它包含一个空字符串的元素,则会抛出一个<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>.ServerProvider</code></span>
</blockquote>
<p> <span>如果<code>environment</code>参数为<a href="../../../javax/management/remote/JMXConnectorServerFactory.html#newJMXConnectorServer-javax.management.remote.JMXServiceURL-java.util.Map-javax.management.MBeanServer-"><code>newJMXConnectorServer</code></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>JMXConnectorServerProvider</code></span> </p>
<p> <span>每个实现必须支持具有默认RMI传输的RMI连接器协议用串<code>rmi</code></span> <span>实现可以可选地支持具有用串<code>iiop</code>的RMI / IIOP传输的RMI连接器协议。</span> </p>
<p> <span>一旦找到提供商, <code>newJMXConnectorServer</code>方法的结果是在提供商上调用<a href="../../../javax/management/remote/JMXConnectorServerProvider.html#newJMXConnectorServer-javax.management.remote.JMXServiceURL-java.util.Map-javax.management.MBeanServer-"><code>newJMXConnectorServer</code></a>的结果。</span> </p>
<p> <span><code>Map</code>传递给参数<code>JMXConnectorServerProvider</code>是一个新的只读<code>Map</code>包含所有均在条目<code>environment</code>参数<a href="../../../javax/management/remote/JMXConnectorServerFactory.html#newJMXConnectorServer-javax.management.remote.JMXServiceURL-java.util.Map-javax.management.MBeanServer-"><code>JMXConnectorServerFactory.newJMXConnectorServer</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/JMXConnectorServerFactory.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/JMXConnectorServerFactory.html#DEFAULT_CLASS_LOADER_NAME">DEFAULT_CLASS_LOADER_NAME</a></span></code>
<div class="block">
指定默认类加载器MBean名称的属性的名称。
</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/JMXConnectorServerFactory.html#PROTOCOL_PROVIDER_CLASS_LOADER">PROTOCOL_PROVIDER_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/JMXConnectorServerFactory.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/JMXConnectorServer.html" title="class in javax.management.remote">JMXConnectorServer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/management/remote/JMXConnectorServerFactory.html#newJMXConnectorServer-javax.management.remote.JMXServiceURL-java.util.Map-javax.management.MBeanServer-">newJMXConnectorServer</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, <a href="../../../javax/management/MBeanServer.html" title="interface in javax.management">MBeanServer</a> mbeanServer)</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>此类加载器用于在从客户端接收的请求中对对象进行反序列化可能在咨询了MBean特定类加载器之后。</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.JMXConnectorServerFactory.DEFAULT_CLASS_LOADER">Constant Field Values</a>
</dd>
</dl> </li>
</ul> <a name="DEFAULT_CLASS_LOADER_NAME">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>DEFAULT_CLASS_LOADER_NAME</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> DEFAULT_CLASS_LOADER_NAME</pre>
<div class="block">
<p> <span>指定默认类加载器MBean名称的属性的名称。</span> <span>此类加载器用于在从客户端接收的请求中对对象进行反序列化可能在咨询了MBean特定类加载器之后。</span> <span>与此属性关联的值是一个实例<a href="../../../javax/management/ObjectName.html" title="javax.management中的类"><code>ObjectName</code></a></span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../constant-values.html#javax.management.remote.JMXConnectorServerFactory.DEFAULT_CLASS_LOADER_NAME">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.JMXConnectorServerFactory.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.JMXConnectorServerFactory.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="newJMXConnectorServer-javax.management.remote.JMXServiceURL-java.util.Map-javax.management.MBeanServer-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>newJMXConnectorServer</h4> <pre>public static <a href="../../../javax/management/remote/JMXConnectorServer.html" title="class in javax.management.remote">JMXConnectorServer</a> newJMXConnectorServer(<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,
<a href="../../../javax/management/MBeanServer.html" title="interface in javax.management">MBeanServer</a> mbeanServer)
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/JMXConnectorServerMBean.html#start--"><code>start</code></a>方法之前,不会启动结果服务器。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>serviceURL</code> - 新连接器服务器的地址。</span>
<span>由其<a href="../../../javax/management/remote/JMXConnectorServerMBean.html#getAddress--"><code>getAddress</code></a>方法返回的新连接器服务器的实际地址不一定完全相同。</span>
<span>例如,如果原始地址没有,它可能包含端口号。</span>
</dd>
<dd>
<span><code>environment</code> - 一组属性来控制新的连接器服务器的行为。</span>
<span>此参数可以为null。</span>
<span>此地图中的键必须是字符串。</span>
<span>每个关联值的适当类型取决于属性。</span>
<span><code>environment</code>的内容不会被此呼叫更改。</span>
</dd>
<dd>
<span><code>mbeanServer</code> - 此连接器服务器连接到的MBean服务器。</span>
<span>如果此连接器服务器将通过注册到MBean服务器则为空。</span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>一个<code>JMXConnectorServer</code>新连接器服务器的JMXConnectorServer。</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>