uTools-Manuals/docs/java/javax/naming/spi/NamingManager.html

543 lines
35 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.naming.spi
</div>
<h2 class="title" title="Class NamingManager">Class NamingManager</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.naming.spi.NamingManager</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
已知直接子类:
</dt>
<dd>
<span><a href="../../../javax/naming/spi/DirectoryManager.html" title="javax.naming.spi中的类">DirectoryManager</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public class <span class="typeNameLabel">NamingManager</span>
extends <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<span>该类包含用于创建命名或目录服务中位置信息引用的上下文对象和对象的方法。</span>
<p> <span>这个类不能被实例化。</span> <span>它只有静态方法。</span> </p>
<p> <span>该类文档中提及的URL是指RFC 1738及其相关RFC定义的URL字符串。</span> <span>它是符合其中描述的语法的任何字符串并且可能不总是在java.net.URL类或Web浏览器中具有相应的支持。</span> </p>
<p> <span>NamingManager对多个线程的并发访问是安全的。</span> </p>
<p> <span>除非另有说明,传递给任何方法的<tt>Name</tt>或环境参数由调用者拥有。</span> <span>实现不会修改对象或保留对它的引用,尽管它可以保留对克隆或副本的引用。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.3
</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/naming/spi/NamingManager.html#CPE">CPE</a></span></code>
<div class="block">
持有其中
<tt>getContinuationContext()</tt>存储其
<tt>CannotProceedException</tt>参数值的环境属性名称的常量。
</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/naming/Context.html" title="interface in javax.naming">Context</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/NamingManager.html#getContinuationContext-javax.naming.CannotProceedException-">getContinuationContext</a></span>(<a href="../../../javax/naming/CannotProceedException.html" title="class in javax.naming">CannotProceedException</a> cpe)</code>
<div class="block">
创建一个上下文来继续上下文操作。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>static <a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/NamingManager.html#getInitialContext-java.util.Hashtable-">getInitialContext</a></span>(<a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a>&lt;?,?&gt; env)</code>
<div class="block">
使用指定的环境属性创建初始上下文。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>static <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/NamingManager.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-">getObjectInstance</a></span>(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> refInfo, <a href="../../../javax/naming/Name.html" title="interface in javax.naming">Name</a> name, <a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> nameCtx, <a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a>&lt;?,?&gt; environment)</code>
<div class="block">
为指定的对象和环境创建一个对象的实例。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>static <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/NamingManager.html#getStateToBind-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-">getStateToBind</a></span>(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> obj, <a href="../../../javax/naming/Name.html" title="interface in javax.naming">Name</a> name, <a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> nameCtx, <a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a>&lt;?,?&gt; environment)</code>
<div class="block">
检索绑定对象的状态。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>static <a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/NamingManager.html#getURLContext-java.lang.String-java.util.Hashtable-">getURLContext</a></span>(<a href="../../../java/lang/String.html" title="class in java.lang">String</a> scheme, <a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a>&lt;?,?&gt; environment)</code>
<div class="block">
为给定的URL方案ID创建上下文。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/NamingManager.html#hasInitialContextFactoryBuilder--">hasInitialContextFactoryBuilder</a></span>()</code>
<div class="block">
确定初始上下文工厂生成器是否已设置。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/NamingManager.html#setInitialContextFactoryBuilder-javax.naming.spi.InitialContextFactoryBuilder-">setInitialContextFactoryBuilder</a></span>(<a href="../../../javax/naming/spi/InitialContextFactoryBuilder.html" title="interface in javax.naming.spi">InitialContextFactoryBuilder</a> builder)</code>
<div class="block">
将InitialContextFactory构建器设置为构建器。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/NamingManager.html#setObjectFactoryBuilder-javax.naming.spi.ObjectFactoryBuilder-">setObjectFactoryBuilder</a></span>(<a href="../../../javax/naming/spi/ObjectFactoryBuilder.html" title="interface in javax.naming.spi">ObjectFactoryBuilder</a> builder)</code>
<div class="block">
ObjectFactoryBuilder确定在尝试加载对象工厂时使用的策略。
</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="CPE">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>CPE</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> CPE</pre>
<div class="block">
<span>持有环境属性名称的常量, <tt>getContinuationContext()</tt>存储其<tt>CannotProceedException</tt>参数的值。</span>
<span>该属性由连续上下文继承,该上下文的服务提供者可以使用该属性来检查异常的字段。</span>
<p> <span>该常量的值为“java.naming.spi.CannotProceedException”。</span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.3
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/spi/NamingManager.html#getContinuationContext-javax.naming.CannotProceedException-"><code>getContinuationContext(javax.naming.CannotProceedException)</code></a>
<a href="../../../constant-values.html#javax.naming.spi.NamingManager.CPE">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="setObjectFactoryBuilder-javax.naming.spi.ObjectFactoryBuilder-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setObjectFactoryBuilder</h4> <pre>public static void setObjectFactoryBuilder(<a href="../../../javax/naming/spi/ObjectFactoryBuilder.html" title="interface in javax.naming.spi">ObjectFactoryBuilder</a> builder)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>ObjectFactoryBuilder确定在尝试加载对象工厂时使用的策略。</span>
<span>有关默认策略的描述请参阅getObjectInstance和ObjectFactory类。</span>
<span>setObjectFactoryBuilder通过安装ObjectFactoryBuilder来覆盖此默认策略。</span>
<span>随后的对象工厂将使用已安装的构建器进行加载和创建。</span>
<p> <span>只有执行线程由安全管理员的checkSetFactory方法允许构建器才能安装</span> <span>安装完成后,无法更换生成器。</span> </p>
<p></p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>builder</code> - 工厂制造商安装。</span>
<span>如果为空,则不安装构建器。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/lang/SecurityException.html" title="class in java.lang">SecurityException</a></code> - 出于安全考虑,无法安装构建器。
</dd>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 由于非安全性原因,无法安装构建器。
</dd>
<dd>
<code><a href="../../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> - 如果已经安装了工厂。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/spi/NamingManager.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-"><code>getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable&lt;?, ?&gt;)</code></a> <a href="../../../javax/naming/spi/ObjectFactory.html" title="javax.naming.spi中的接口"><code>ObjectFactory</code></a> <a href="../../../javax/naming/spi/ObjectFactoryBuilder.html" title="javax.naming.spi中的接口"><code>ObjectFactoryBuilder</code></a> <a href="../../../java/lang/SecurityManager.html#checkSetFactory--"><code>SecurityManager.checkSetFactory()</code></a></span>
</dd>
</dl> </li>
</ul> <a name="getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getObjectInstance</h4> <pre>public static <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> getObjectInstance(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> refInfo,
<a href="../../../javax/naming/Name.html" title="interface in javax.naming">Name</a> name,
<a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> nameCtx,
<a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a>&lt;?,?&gt; environment)
throws <a href="../../../java/lang/Exception.html" title="class in java.lang">异常</a></pre>
<div class="block">
<span>为指定的对象和环境创建一个对象的实例。</span>
<p> <span>如果已安装对象工厂构建器,则用于创建用于创建对象的工厂。</span> <span>否则,以下规则用于创建对象:</span> </p>
<ol>
<li> <span>如果<code>refInfo</code>是包含工厂类名的<code>Reference</code><code>Referenceable</code> ,请使用命名工厂来创建对象。</span> <span>如果工厂无法创建,返回<code>refInfo</code></span> <span>在JDK 1.1下,如果工厂类必须从引用中指定的位置加载, <tt></tt>必须安装SecurityManager否则工厂创建失败。</span> <span>如果在创建工厂时遇到异常,它将传递给调用者。</span> </li>
<li> <span>如果<tt>refInfo</tt><tt>Reference</tt><tt>Referenceable</tt> ,没有工厂类名称,地址或地址是<tt>StringRefAddr</tt> 地址类型为“URL”请尝试与每个URL的方案ID相对应的URL上下文工厂来创建对象<tt>getURLContext()</tt> )。</span> <span>如果失败,继续下一步。</span> </li>
<li> <span>使用环境的<tt>Context.OBJECT_FACTORIES</tt>属性指定的对象的工厂,并与相关<tt>nameCtx</tt>供应商资源文件的,按照这个顺序。</span> <span>该属性的值是按冒号分隔的工厂类名列表,按顺序尝试,成功创建对象的第一个列表是使用的列表。</span> <span>如果没有工厂可以加载,请返回<code>refInfo</code></span> <span>如果在创建对象时遇到异常,则将异常传递给调用者。</span> </li>
</ol>
<p> <span>实现DirContext接口的<tt>服务</tt>提供商应该使用<tt>DirectoryManager.getObjectInstance()</tt> ,而不是这种方法。</span> <span>仅实现<tt>Context</tt>接口的服务提供商应该使用此方法。</span> </p>
<p> <span>请注意对象工厂实现ObjectFactory接口的对象必须是公共的并且必须具有不接受参数的公共构造函数。</span> </p>
<p> <span><code>name</code><code>nameCtx</code>参数可以可选地用于指定正在创建的对象的名称。</span> <span><code>name</code>是对象的名称,相对于上下文<code>nameCtx</code></span> <span>该信息可能对对象工厂或对象实现有用。</span> <span>如果有几个可能的对象可以被命名的上下文(通常是这样),则由调用者来选择一个。</span> <span>一个很好的经验法则是选择“最深”的上下文。</span> <span>如果<code>nameCtx</code>为空,则<code>name</code>是相对于默认的初始上下文。</span> <span>如果未指定名称,那么<code>name</code>参数应为空。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>refInfo</code> - 可以为其创建对象的空对象。
</dd>
<dd>
<span><code>name</code> - 此对象的名称相对于<code>nameCtx</code></span>
<span>指定名称是可选的;</span>
<span>如果省略, <code>name</code>应为null。</span>
</dd>
<dd>
<span><code>nameCtx</code> - 指定<code>name</code>参数的上下文。</span>
<span>如果为null <code>name</code>是相对于默认的初始上下文。</span>
</dd>
<dd>
<code>environment</code> - 用于创建对象工厂和对象的可能的空环境。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>使用<code>refInfo</code>创建的对象;</span>
<span><code>refInfo</code>如果对象不能使用上面描述的算法来创建。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果在尝试获取URL上下文时遇到命名异常或者如果其中一个工厂引用了NamingException。
</dd>
<dd>
<span><code><a href="../../../java/lang/Exception.html" title="class in java.lang">异常</a></code> - 如果其中一个访问的工厂引发异常,或者在加载和实例化工厂和对象类时遇到错误。</span>
<span>如果工厂不希望使用其他工厂来尝试创建对象,那么工厂应该只抛出异常。</span>
<span>请参阅ObjectFactory.getObjectInstance</span>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/spi/NamingManager.html#getURLContext-java.lang.String-java.util.Hashtable-"><code>getURLContext(java.lang.String, java.util.Hashtable&lt;?, ?&gt;)</code></a> <a href="../../../javax/naming/spi/ObjectFactory.html" title="javax.naming.spi中的接口"><code>ObjectFactory</code></a> <a href="../../../javax/naming/spi/ObjectFactory.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-"><code>ObjectFactory.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable&lt;?, ?&gt;)</code></a></span>
</dd>
</dl> </li>
</ul> <a name="getURLContext-java.lang.String-java.util.Hashtable-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getURLContext</h4> <pre>public static <a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> getURLContext(<a href="../../../java/lang/String.html" title="class in java.lang">String</a> scheme,
<a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a>&lt;?,?&gt; environment)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>为给定的URL方案ID创建上下文。</span>
<p> <span>所得到的上下文用于解析方案<code>scheme</code> URL。</span> <span>所得到的上下文不与特定URL绑定。</span> <span>它能够处理具有指定方案的任意URL。</span> </p>
<p> <span>创建生成的上下文的工厂的类名称具有如下指定的包中的命名约定<i>scheme-id</i> URLContextFactory例如“ftp”scheme-id“ftpURLContextFactory”</span> <span><tt>Context.URL_PKG_PREFIXES</tt>环境属性可能包含从applet参数系统属性或应用程序资源文件获取的值包含冒号分隔的包前缀列表。</span> <span>属性中的每个包前缀按照指定的顺序进行加载工厂类。</span> <span>默认包前缀为“com.sun.jndi.url”如果没有指定的包正常工作则会尝试此默认值</span> <span>完整的软件包名称使用软件包前缀构建并与scheme id相连。</span> </p>
<p> <span>例如如果方案id为“ldap”并且<tt>Context.URL_PKG_PREFIXES</tt>属性包含“com.widgetcom.wiz.jndi”则命名管理器将尝试加载以下类直到成功实例化为止</span> </p>
<ul>
<li> <span>com.widget.ldap.ldapURLContextFactory</span> </li>
<li> <span>com.wiz.jndi.ldap.ldapURLContextFactory</span> </li>
<li> <span>com.sun.jndi.url.ldap.ldapURLContextFactory</span> </li>
</ul>
<span>如果没有包前缀工作则返回null。</span>
<p> <span>如果工厂被实例化,则使用以下参数调用工厂来生成结果上下文。</span> </p>
<p> <code>factory.getObjectInstance(null, environment);</code> </p>
<p> <span>例如如上所示在LDAP URL上下文工厂上调用getObjectInstance将返回一个可以解析LDAP URL的上下文例如“ldap//ldap.wiz.com/o=wiz,c=us”“ldap //ldap.umich.edu/o=umich,c=us“...)。</span> </p>
<p> <span>请注意对象工厂实现ObjectFactory接口的对象必须是公共的并且必须具有不接受参数的公共构造函数。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>scheme</code> - 上下文支持的URL的非空方案ID。
</dd>
<dd>
<code>environment</code> - 用于创建对象工厂和上下文的可能的空环境属性。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>用于解析具有方案ID <code>scheme</code> URL的上下文;</span>
<span><code>null</code>如果没有找到创建上下文的工厂。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果在创建上下文时发生命名异常。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/spi/NamingManager.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-"><code>getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable&lt;?, ?&gt;)</code></a>
<a href="../../../javax/naming/spi/ObjectFactory.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-"><code>ObjectFactory.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable&lt;?, ?&gt;)</code></a>
</dd>
</dl> </li>
</ul> <a name="getInitialContext-java.util.Hashtable-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getInitialContext</h4> <pre>public static <a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> getInitialContext(<a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a>&lt;?,?&gt; env)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>使用指定的环境属性创建初始上下文。</span>
<p> <span>如果已安装InitialContextFactoryBuilder则用于创建初始上下文的工厂。</span> <span>否则,使用<tt>Context.INITIAL_CONTEXT_FACTORY</tt>环境属性中指定的类。</span> <span>请注意初始上下文工厂实现InitialContextFactory接口的对象必须是public的并且必须具有不接受参数的公共构造函数。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>env</code> - 创建上下文时使用的可能的空环境属性。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
非空初始上下文。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NoInitialContextException.html" title="class in javax.naming">NoInitialContextException</a></code> - 如果未找到
<tt>Context.INITIAL_CONTEXT_FACTORY</tt>属性或命名不可实例化的类或类,或者由于某些其他原因无法创建初始上下文。
</dd>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果遇到其他一些命名异常。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/InitialContext.html" title="javax.naming中的类"><code>InitialContext</code></a> <a href="../../../javax/naming/directory/InitialDirContext.html" title="javax.naming.directory中的类"><code>InitialDirContext</code></a></span>
</dd>
</dl> </li>
</ul> <a name="setInitialContextFactoryBuilder-javax.naming.spi.InitialContextFactoryBuilder-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setInitialContextFactoryBuilder</h4> <pre>public static void setInitialContextFactoryBuilder(<a href="../../../javax/naming/spi/InitialContextFactoryBuilder.html" title="interface in javax.naming.spi">InitialContextFactoryBuilder</a> builder)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>将InitialContextFactory构建器设置为构建器。</span>
<p> <span>只有安全管理员允许执行线程才能安装构建器。</span> <span>安装完成后,无法更换生成器。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>builder</code> - 要安装的初始上下文工厂构建器。</span>
<span>如果为空,则不设置构建器。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/lang/SecurityException.html" title="class in java.lang">SecurityException</a></code> - 由于安全原因,无法安装构建器。
</dd>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 由于非安全性原因,无法安装构建器。
</dd>
<dd>
<code><a href="../../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> - 如果以前安装了构建器。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/spi/NamingManager.html#hasInitialContextFactoryBuilder--"><code>hasInitialContextFactoryBuilder()</code></a>
<a href="../../../java/lang/SecurityManager.html#checkSetFactory--"><code>SecurityManager.checkSetFactory()</code></a>
</dd>
</dl> </li>
</ul> <a name="hasInitialContextFactoryBuilder--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>hasInitialContextFactoryBuilder</h4> <pre>public static boolean hasInitialContextFactoryBuilder()</pre>
<div class="block">
确定初始上下文工厂生成器是否已设置。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>如果初始上下文工厂生成器已设置则为true;</span>
<span>否则为假。</span>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/spi/NamingManager.html#setInitialContextFactoryBuilder-javax.naming.spi.InitialContextFactoryBuilder-"><code>setInitialContextFactoryBuilder(javax.naming.spi.InitialContextFactoryBuilder)</code></a>
</dd>
</dl> </li>
</ul> <a name="getContinuationContext-javax.naming.CannotProceedException-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getContinuationContext</h4> <pre>public static <a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> getContinuationContext(<a href="../../../javax/naming/CannotProceedException.html" title="class in javax.naming">CannotProceedException</a> cpe)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>创建一个上下文来继续上下文操作。</span>
<p> <span>在对跨越多个命名空间的名称执行操作时,来自一个命名系统的上下文可能需要将操作传递到下一个命名系统。</span> <span>上下文实现通过首先构建一个<code>CannotProceedException</code>信息来确定它已经进行了多远的信息CannotProceedException。</span> <span>然后通过调用<code>getContinuationContext</code>从JNDI获取连续上下文。</span> <span>然后,上下文实现应通过在连续上下文中调用相同的操作来恢复上下文操作,使用尚未解析的名称的剩余部分。</span> </p>
<p> <span>利用该<tt>cpe</tt>参数之前,这种方法更新由属性的值设置与该对象关联的环境<a href="#CPE"><tt>CPE</tt></a><tt>cpe。</tt></span> <span>该属性将由连续上下文继承,该上下文的服务提供者可以使用该属性来检查此异常的字段。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>cpe</code> - 触发此延续的非空异常。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
用于继续操作的非空Context对象。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果发生命名异常。
</dd>
</dl> </li>
</ul> <a name="getStateToBind-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>getStateToBind</h4> <pre>public static <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> getStateToBind(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> obj,
<a href="../../../javax/naming/Name.html" title="interface in javax.naming">Name</a> name,
<a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> nameCtx,
<a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a>&lt;?,?&gt; environment)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>检索绑定对象的状态。</span>
<p> <span>实现DirContext接口的<tt>服务</tt>提供商应该使用<tt>DirectoryManager.getStateToBind()</tt> ,而不是这种方法。</span> <span>仅使用<tt>Context</tt>接口的服务提供商应使用此方法。</span> </p>
<p> <span>此方法使用在<tt>Context.STATE_FACTORIES</tt>属性指定的国营工厂从环境特性,并从<tt>nameCtx</tt>相关的供应商资源文件,按照这个顺序。</span> <span>此属性的值是按冒号分隔的工厂类名列表,按顺序尝试,成功返回对象状态的第一个列是使用的列。</span> <span>如果没有以这种方式检索对象的状态,则返回对象本身。</span> <span>如果在检索状态时遇到异常,该异常将传递给调用者。</span> </p>
<p> <span>请注意状态工厂实现StateFactory接口的对象必须是public的并且必须具有不接受参数的公共构造函数。</span> </p>
<p> <span><code>name</code><code>nameCtx</code>参数可以可选地用于指定正在创建的对象的名称。</span> <span>见“名称和上下文参数”的描述<a href="../../../javax/naming/spi/ObjectFactory.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-"><code>ObjectFactory.getObjectInstance()</code></a>了解详情。</span> </p>
<p> <span>此方法可能返回一个<tt>884948977472</tt>对象。</span> <span>获取此对象的服务提供商可以选择直接存储,或者提取其参考(使用<tt>Referenceable.getReference()</tt> )并存储。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>obj</code> - 要获取状态绑定的非空对象。
</dd>
<dd>
<code>name</code> - 此对象相对于
<code>nameCtx</code>的名称如果未指定名称则为null。
</dd>
<dd>
<code>nameCtx</code> - 指定
<code>name</code>参数的上下文,如果
<code>name</code>相对于默认的初始上下文则为null。
</dd>
<dd>
<code>environment</code> - 用于创建状态工厂和对象状态的可能的空环境。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>表示<tt>obj</tt>的绑定状态的非空对象。</span>
<span>它可以是对象( <tt>obj</tt> )本身。</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<span><code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果其中一个访问的工厂引发异常,或者在加载和实例化工厂和对象类时遇到错误。</span>
<span>如果工厂不希望使用其他工厂来尝试创建对象,那么工厂应该只抛出异常。</span>
<span><tt>StateFactory.getStateToBind()</tt></span>
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.3
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/spi/StateFactory.html" title="javax.naming.spi中的接口"><code>StateFactory</code></a> <a href="../../../javax/naming/spi/StateFactory.html#getStateToBind-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-"><code>StateFactory.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable&lt;?, ?&gt;)</code></a> <a href="../../../javax/naming/spi/DirectoryManager.html#getStateToBind-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-javax.naming.directory.Attributes-"><code>DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable&lt;?, ?&gt;, javax.naming.directory.Attributes)</code></a></span>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>