uTools-Manuals/docs/java/org/omg/PortableServer/package-summary.html

561 lines
27 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">
<h1 class="title" title="Package">Package org.omg.PortableServer</h1>
<div class="docSummary">
<div class="block">
提供类和接口使您的应用程序的服务器端可跨多厂商ORBs移植。
</div>
</div>
<p>See: <a href="#package.description">描述</a></p>
</div><div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" class="typeSummary" summary="Interface Summary table, listing interfaces, and an explanation">
<caption>
<span>接口摘要</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">接口</th>
<th class="colLast" scope="col">描述</th>
</tr>
</tbody>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/AdapterActivator.html" title="interface in org.omg.PortableServer">AdapterActivator</a></td>
<td class="colLast">
<div class="block">
适配器激活器为POA提供了根据需要创建儿童POA的能力作为接收命名儿童POA或其一个孩子的请求的副作用或者当使用activate参数值为TRUE时调用find_POA时。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/AdapterActivatorOperations.html" title="interface in org.omg.PortableServer">AdapterActivatorOperations</a></td>
<td class="colLast">
<div class="block">
适配器激活器为POA提供了根据需要创建儿童POA的能力作为接收命名儿童POA或其一个孩子的请求的副作用或者当使用activate参数值为TRUE时调用find_POA时。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/Current.html" title="interface in org.omg.PortableServer">Current</a></td>
<td class="colLast">
<div class="block">
从CORBA :: Current派生的PortableServer :: Current接口提供了访问方法被调用的对象的身份的方法实现。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/CurrentOperations.html" title="interface in org.omg.PortableServer">CurrentOperations</a></td>
<td class="colLast">
<div class="block">
从CORBA :: Current派生的PortableServer :: Current接口提供了访问方法被调用的对象的身份的方法实现。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.html" title="interface in org.omg.PortableServer">ID_ASSIGNMENT_POLICY_ID</a></td>
<td class="colLast">
<div class="block">
org / omg / PortableServer / ID_ASSIGNMENT_POLICY_ID.java。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.html" title="interface in org.omg.PortableServer">ID_UNIQUENESS_POLICY_ID</a></td>
<td class="colLast">
<div class="block">
org / omg / PortableServer / ID_UNIQUENESS_POLICY_ID.java。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/IdAssignmentPolicy.html" title="interface in org.omg.PortableServer">IdAssignmentPolicy</a></td>
<td class="colLast">
<div class="block">
IdAssignmentPolicy指定创建的POA中的对象Id是由应用程序还是由ORB生成。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/IdAssignmentPolicyOperations.html" title="interface in org.omg.PortableServer">IdAssignmentPolicyOperations</a></td>
<td class="colLast">
<div class="block">
IdAssignmentPolicy指定创建的POA中的对象Id是由应用程序还是由ORB生成。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/IdUniquenessPolicy.html" title="interface in org.omg.PortableServer">IdUniquenessPolicy</a></td>
<td class="colLast">
<div class="block">
IdUniquenessPolicy指定在创建的POA中激活的服务器是否必须具有唯一对象i身份。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/IdUniquenessPolicyOperations.html" title="interface in org.omg.PortableServer">IdUniquenessPolicyOperations</a></td>
<td class="colLast">
<div class="block">
IdUniquenessPolicy指定在创建的POA中激活的服务器是否必须具有唯一对象i身份。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.html" title="interface in org.omg.PortableServer">IMPLICIT_ACTIVATION_POLICY_ID</a></td>
<td class="colLast">
<div class="block">
org / omg / PortableServer / IMPLICIT_ACTIVATION_POLICY_ID.java。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ImplicitActivationPolicy.html" title="interface in org.omg.PortableServer">ImplicitActivationPolicy</a></td>
<td class="colLast">
<div class="block">
此策略指定在创建的POA中是否支持仆人的隐式激活。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ImplicitActivationPolicyOperations.html" title="interface in org.omg.PortableServer">ImplicitActivationPolicyOperations</a></td>
<td class="colLast">
<div class="block">
此策略指定在创建的POA中是否支持仆人的隐式激活。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/LIFESPAN_POLICY_ID.html" title="interface in org.omg.PortableServer">LIFESPAN_POLICY_ID</a></td>
<td class="colLast">
<div class="block">
org / omg / PortableServer / LIFESPAN_POLICY_ID.java。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/LifespanPolicy.html" title="interface in org.omg.PortableServer">LifespanPolicy</a></td>
<td class="colLast">
<div class="block">
LifespanPolicy指定在创建的POA中实现的对象的使用寿命。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/LifespanPolicyOperations.html" title="interface in org.omg.PortableServer">LifespanPolicyOperations</a></td>
<td class="colLast">
<div class="block">
LifespanPolicy指定在创建的POA中实现的对象的使用寿命。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/POA.html" title="interface in org.omg.PortableServer">POA</a></td>
<td class="colLast">
<div class="block">
POA对象管理对象集合的实现。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/POAManager.html" title="interface in org.omg.PortableServer">POAManager</a></td>
<td class="colLast">
<div class="block">
每个POA对象都有一个关联的POAManager对象。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/POAManagerOperations.html" title="interface in org.omg.PortableServer">POAManagerOperations</a></td>
<td class="colLast">
<div class="block">
每个POA对象都有一个关联的POAManager对象。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/POAOperations.html" title="interface in org.omg.PortableServer">POAOperations</a></td>
<td class="colLast">
<div class="block">
POA对象管理对象集合的实现。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.html" title="interface in org.omg.PortableServer">REQUEST_PROCESSING_POLICY_ID</a></td>
<td class="colLast">
<div class="block">
org / omg / PortableServer / REQUEST_PROCESSING_POLICY_ID.java。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/RequestProcessingPolicy.html" title="interface in org.omg.PortableServer">RequestProcessingPolicy</a></td>
<td class="colLast">
<div class="block">
此策略指定创建的POA如何处理请求。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/RequestProcessingPolicyOperations.html" title="interface in org.omg.PortableServer">RequestProcessingPolicyOperations</a></td>
<td class="colLast">
<div class="block">
此策略指定创建的POA如何处理请求。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.html" title="interface in org.omg.PortableServer">SERVANT_RETENTION_POLICY_ID</a></td>
<td class="colLast">
<div class="block">
org / omg / PortableServer / SERVANT_RETENTION_POLICY_ID.java。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantActivator.html" title="interface in org.omg.PortableServer">ServantActivator</a></td>
<td class="colLast">
<div class="block">
当POA具有RETAIN策略时它使用ServantActivator的仆人管理器。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantActivatorOperations.html" title="interface in org.omg.PortableServer">ServantActivatorOperations</a></td>
<td class="colLast">
<div class="block">
当POA具有RETAIN策略时它使用ServantActivator的仆人管理器。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantLocator.html" title="interface in org.omg.PortableServer">ServantLocator</a></td>
<td class="colLast">
<div class="block">
当POA具有NON_RETAIN策略时它使用ServantLocator的servant管理器。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantLocatorOperations.html" title="interface in org.omg.PortableServer">ServantLocatorOperations</a></td>
<td class="colLast">
<div class="block">
当POA具有NON_RETAIN策略时它使用ServantLocator的servant管理器。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantManager.html" title="interface in org.omg.PortableServer">ServantManager</a></td>
<td class="colLast">
<div class="block">
当POA接收到针对非活动对象的请求时仆人经理为POA提供激活对象的能力。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantManagerOperations.html" title="interface in org.omg.PortableServer">ServantManagerOperations</a></td>
<td class="colLast">
<div class="block">
当POA接收到针对非活动对象的请求时仆人经理为POA提供激活对象的能力。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantRetentionPolicy.html" title="interface in org.omg.PortableServer">ServantRetentionPolicy</a></td>
<td class="colLast">
<div class="block">
此策略指定创建的POA是否在活动对象映射中保留活动服务器。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantRetentionPolicyOperations.html" title="interface in org.omg.PortableServer">ServantRetentionPolicyOperations</a></td>
<td class="colLast">
<div class="block">
此策略指定创建的POA是否在活动对象映射中保留活动服务器。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/THREAD_POLICY_ID.html" title="interface in org.omg.PortableServer">THREAD_POLICY_ID</a></td>
<td class="colLast">
<div class="block">
org / omg / PortableServer / THREAD_POLICY_ID.java。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ThreadPolicy.html" title="interface in org.omg.PortableServer">ThreadPolicy</a></td>
<td class="colLast">
<div class="block">
ThreadPolicy指定与创建的POA一起使用的线程模型。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ThreadPolicyOperations.html" title="interface in org.omg.PortableServer">ThreadPolicyOperations</a></td>
<td class="colLast">
<div class="block">
ThreadPolicy指定与创建的POA一起使用的线程模型。
</div> </td>
</tr>
</tbody>
</table> </li>
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" class="typeSummary" summary="Class Summary table, listing classes, and an explanation">
<caption>
<span>类摘要</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col"></th>
<th class="colLast" scope="col">描述</th>
</tr>
</tbody>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/_ServantActivatorStub.html" title="class in org.omg.PortableServer">_ServantActivatorStub</a></td>
<td class="colLast">
<div class="block">
当POA具有RETAIN策略时它使用ServantActivator的仆人管理器。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/_ServantLocatorStub.html" title="class in org.omg.PortableServer">_ServantLocatorStub</a></td>
<td class="colLast">
<div class="block">
当POA具有NON_RETAIN策略时它使用ServantLocator的servant管理器。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/CurrentHelper.html" title="class in org.omg.PortableServer">CurrentHelper</a></td>
<td class="colLast">
<div class="block">
从CORBA :: Current派生的PortableServer :: Current接口提供了访问方法被调用的对象的身份的方法实现。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/DynamicImplementation.html" title="class in org.omg.PortableServer">DynamicImplementation</a></td>
<td class="colLast">
<div class="block">
允许动态处理对象调用。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ForwardRequestHelper.html" title="class in org.omg.PortableServer">ForwardRequestHelper</a></td>
<td class="colLast">
<div class="block">
org / omg / PortableServer / ForwardRequestHelper.java。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/IdAssignmentPolicyValue.html" title="class in org.omg.PortableServer">IdAssignmentPolicyValue</a></td>
<td class="colLast">
<div class="block">
IdAssignmentPolicyValue可以具有以下值。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/IdUniquenessPolicyValue.html" title="class in org.omg.PortableServer">IdUniquenessPolicyValue</a></td>
<td class="colLast">
<div class="block">
IdUniquenessPolicyValue可以具有以下值。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ImplicitActivationPolicyValue.html" title="class in org.omg.PortableServer">ImplicitActivationPolicyValue</a></td>
<td class="colLast">
<div class="block">
ImplicitActivationPolicyValue具有以下语义。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/LifespanPolicyValue.html" title="class in org.omg.PortableServer">LifespanPolicyValue</a></td>
<td class="colLast">
<div class="block">
LifespanPolicyValue可以具有以下值。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/POAHelper.html" title="class in org.omg.PortableServer">POAHelper</a></td>
<td class="colLast">
<div class="block">
POA对象管理对象集合的实现。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/RequestProcessingPolicyValue.html" title="class in org.omg.PortableServer">RequestProcessingPolicyValue</a></td>
<td class="colLast">
<div class="block">
RequestProcessingPolicyValue可以具有以下值。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/Servant.html" title="class in org.omg.PortableServer">Servant</a></td>
<td class="colLast">
<div class="block">
定义本机
<code>Servant</code>类型。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantActivatorHelper.html" title="class in org.omg.PortableServer">ServantActivatorHelper</a></td>
<td class="colLast">
<div class="block">
当POA具有RETAIN策略时它使用ServantActivator的仆人管理器。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantActivatorPOA.html" title="class in org.omg.PortableServer">ServantActivatorPOA</a></td>
<td class="colLast">
<div class="block">
当POA具有RETAIN策略时它使用ServantActivator的仆人管理器。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantLocatorHelper.html" title="class in org.omg.PortableServer">ServantLocatorHelper</a></td>
<td class="colLast">
<div class="block">
当POA具有NON_RETAIN策略时它使用ServantLocator的servant管理器。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantLocatorPOA.html" title="class in org.omg.PortableServer">ServantLocatorPOA</a></td>
<td class="colLast">
<div class="block">
当POA具有NON_RETAIN策略时它使用ServantLocator的servant管理器。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ServantRetentionPolicyValue.html" title="class in org.omg.PortableServer">ServantRetentionPolicyValue</a></td>
<td class="colLast">
<div class="block">
ServantRetentionPolicyValue可以具有以下值。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ThreadPolicyValue.html" title="class in org.omg.PortableServer">ThreadPolicyValue</a></td>
<td class="colLast">
<div class="block">
ThreadPolicyValue可以具有以下值。
</div> </td>
</tr>
</tbody>
</table> </li>
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" class="typeSummary" summary="Exception Summary table, listing exceptions, and an explanation">
<caption>
<span>异常摘要</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">异常</th>
<th class="colLast" scope="col">描述</th>
</tr>
</tbody>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../org/omg/PortableServer/ForwardRequest.html" title="class in org.omg.PortableServer">ForwardRequest</a></td>
<td class="colLast">
<div class="block">
org / omg / PortableServer / ForwardRequest.java。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<a name="package.description">
<!-- --> </a>
<h2 title="Package org.omg.PortableServer Description">Package org.omg.PortableServer Description</h2>
<div class="block">
<span>提供类和接口使您的应用程序的服务器端可跨多厂商ORBs移植。</span>
<p> <span>在Java中基于便携式对象适配器POA的动态骨架接口DSI服务器继承自<tt>Servant</tt>类的标准<tt>DynamicImplementation</tt>类。</span> <span>本地<tt>Servant</tt>类型由用于POA的<tt>PortableServer</tt>模块定义。</span> <span>在Java中 <tt>Servant</tt>类型映射到Java <tt>org.omg.PortableServer.Servant</tt>类。</span> <span>它用作所有POA服务器实现的基类并提供了可以由应用程序员调用的多种方法以及由POA自身调用并可被用户覆盖以控制仆人行为方面的方法。</span> </p>
<h2> <span>包装规格</span> </h2>
<p> <span>有关Java [tm] PlatformStandard Edition 6符合的官方OMG规范支持部分的精确列表请参阅<a href="../CORBA/doc-files/compliance.html">Official Specifications for CORBA support in Java[tm] SE 6</a></span> </p>
<p></p>
<h2> <span>POA相关接口</span> </h2>
<p> <span><tt>PortableServer</tt>模块定义了以下POA相关接口</span> </p>
<p></p>
<ul>
<li> <span><tt>POA</tt></span> </li>
<li> <span><tt>POAManager</tt></span> </li>
<li> <span><tt>ServantManager</tt></span> </li>
<li> <span><tt>ServantActivator</tt></span> </li>
<li> <span><tt>ServantLocator</tt></span> </li>
<li> <span><tt>AdapterActivator</tt></span> </li>
<li> <span><tt>ThreadPolicy</tt></span> </li>
<li> <span><tt>LifespanPolicy</tt></span> </li>
<li> <span><tt>IdUniquenessPolicy</tt></span> </li>
<li> <span><tt>IdAssignmentPolicy</tt></span> </li>
<li> <span><tt>ImplicitActivationPolicy</tt></span> </li>
<li> <span><tt>ServantRetentionPolicy</tt></span> </li>
<li> <span><tt>RequestProcessingPolicy</tt></span> </li>
<li> <span><tt>Current</tt></span> </li>
</ul>
<p> <span>此外POA定义了<tt>Servant</tt>本机类型。</span> </p>
<h3> <span>操作类</span> </h3>
<p> <span>上面列出的每个接口都有一个关联的<code>Operations</code>接口。</span> <span><code>Operations</code>接口由<code>idlj</code>编译器生成,并包含其关联接口中定义的方法的方法签名。</span> <span><code>Operations</code>接口可以由客户端和服务器访问,而其关联的接口只能由客户端调用。</span> </p>
<h3> <span>价值类</span> </h3>
<span>以后缀<code>PolicyValue</code>结尾的类提供用于<code>create_POA</code>调用的值该值设置POA的策略。</span>
<span><a href="#sampleserver">sample code</a>下面的演示。</span>
<span><code>PolicyValue</code>文件包括以下内容:</span>
<p></p>
<ul>
<li> <code>IdAssignmentPolicyValue</code> </li>
<li> <code>IdUniquenessPolicyValue</code> </li>
<li> <code>ImplicitActivationPolicyValue</code> </li>
<li> <code>LifespanPolicyValue</code> </li>
<li> <code>RequestProcessingPolicyValue</code> </li>
<li> <code>ServantRetentionPolicyValue</code> </li>
<li> <code>ThreadPolicyValue</code> </li>
</ul>
<h3> <span>助手班</span> </h3>
<p> <span>为OMG IDL接口中的所有用户定义类型生成的助手类提供了处理这些类型所需的静态方法。</span> <span>应用程序员使用的辅助类中只有一种方法: <code>narrow</code>方法。</span> <span>只有从IDL接口映射的Java接口将具有一个助手类其中包含一个<code>narrow</code>方法,所以在<code>PortableServer</code>包中,只有以下类具有<code>narrow</code>方法:</span> </p>
<p></p>
<ul>
<li> <code>ForwardRequestHelper</code> </li>
<li> <code>ServantActivatorHelper</code> </li>
<li> <code>ServantLocatorHelper</code> </li>
</ul>
<h3> <span>POA类</span> </h3>
<p> <span>POA类用于实现<code>ServantActivator</code><code>ServantLocator</code></span> </p>
<h3> <span>例外</span> </h3>
<p> <span>所述<code>ForwardRequest</code>异常指示给它负责将当前请求和随后的ORB <code>ForwardRequest</code>请求在所表示的对象<code>forward_reference</code>异常的部件。</span> </p>
<h3> <span>应用程序员实现的接口</span> </h3>
<p> <span><code>PortableServer</code>大部分内容对用户来说都是透明的。</span> <span>结果是程序员只会使用上面提到的几个接口。</span> <span>剩余的接口将由ORB实现提供。</span> <span>应用程序员感兴趣的界面如下:</span> </p>
<p></p>
<ul>
<li> <code>AdapterActivator</code> <p> <span>适配器激活器与POA相关联。</span> <span>适配器激活器为POA提供根据需要创建儿童POA的能力作为接收命名儿童POA或其子女之一的请求的副作用或者当<code>find_POA</code>时,激活参数值为<code>TRUE</code></span> <span>在执行开始时创建其所需的所有POA的应用服务器不需要使用或提供适配器激活器;</span> <span>只有在请求处理期间需要创建POA的情况下才有必要。</span> </p><p></p></li>
<li> <code>ServantLocator</code> <p> <span>当POA具有<code>NON_RETAIN</code>策略时,它使用<code>ServantLocator</code>的servant管理器。</span> </p><p></p></li>
<li> <code>ServantActivator</code> <p> <span>当POA具有<code>RETAIN</code>策略时,它使用<code>ServantActivator</code> s的仆人管理器。</span> </p></li>
</ul>
<h2> <span>套餐<tt>org.omg.PortableServer.ServantLocatorPackage</tt></span> </h2>
<p> <span>该包提供一个<tt>CookieHolder</tt>类,用于传递<tt>Cookie</tt>类型作为<code>out</code>参数。</span> <span><code>CookieHolder</code>类遵循与基本类型的其他持有者类完全相同的模式。</span> </p>
<h2> <span>相关文档</span> </h2>
<p> <span>有关Java IDL的概述请参阅</span> </p>
<p></p>
<li> <span><a href="../../../../technotes/guides/idl/index.html">Java IDL home page</a></span> <h2> <span>示例代码</span> </h2> <span><a name="sampleserver"></a></span> <h3> <span>服务器代码示例</span> </h3><p></p><pre> <span>import javax.naming.InitialContext;
import javax.naming.Context;
import javax.rmi.PortableRemoteObject ;
import com.sun.corba.se.impl.poa.POAORB;
import org.omg.PortableServer.*;
import java.util.*;
import org.omg.CORBA.*;
import javax.rmi.CORBA.Stub;
import javax.rmi.CORBA.Util;
public class HelloServer {
public HelloServer(String[] args) {
try {
Properties p = System.getProperties();
// p.put("org.omg.CORBA.ORBClass", "com.sun.corba.ee.internal.POA.POAORB");
ORB orb = ORB.init( args, p );
POA rootPOA = (POA)orb.resolve_initial_references("RootPOA");
<strong> Policy[] tpolicy = new Policy[3]; tpolicy[0] = rootPOA.create_lifespan_policy( LifespanPolicyValue.TRANSIENT ); tpolicy[1] = rootPOA.create_request_processing_policy( RequestProcessingPolicyValue.USE_ACTIVE_OBJECT_MAP_ONLY ); tpolicy[2] = rootPOA.create_servant_retention_policy( ServantRetentionPolicyValue.RETAIN); POA tpoa = rootPOA.create_POA("MyTransientPOA", null, tpolicy); </strong>
String ObjectId = "MyObjectId";
byte[] oid = ObjectId.getBytes();
org.omg.CORBA.Object obj = tpoa.create_reference_with_id(oid,
new _HelloImpl_Tie()._all_interfaces(tpoa, oid)[0]);
HelloInterface helloRef = (HelloInterface)PortableRemoteObject.narrow(
obj, HelloInterface.class );
Context initialNamingContext = new InitialContext();
initialNamingContext.rebind("HelloService", helloRef);
System.out.println("Hello Server: Ready...");
orb.run();
} catch (Exception e) {
System.out.println("Trouble: " + e);
e.printStackTrace();
}
}
public static void main(String args[]) {
new HelloServer( args );
}
}</span> </pre><p></p></li>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.4
<br/>
</dd>
</dl>
</div>