uTools-Manuals/docs/java/org/omg/PortableServer/ServantLocatorPOA.html

232 lines
15 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">
org.omg.PortableServer
</div>
<h2 class="title" title="Class ServantLocatorPOA">Class ServantLocatorPOA</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><a href="../../../org/omg/PortableServer/Servant.html" title="class in org.omg.PortableServer">org.omg.PortableServer.Servant</a></li>
<li>
<ul class="inheritance">
<li>org.omg.PortableServer.ServantLocatorPOA</li>
</ul> </li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Implemented Interfaces:
</dt>
<dd>
<span><a href="../../../org/omg/CORBA/portable/InvokeHandler.html" title="界面在org.omg.CORBA.portable中">InvokeHandler</a> <a href="../../../org/omg/PortableServer/ServantLocatorOperations.html" title="org.omg.PortableServer中的接口">ServantLocatorOperations</a> <a href="../../../org/omg/PortableServer/ServantManagerOperations.html" title="org.omg.PortableServer中的接口">ServantManagerOperations</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public abstract class <span class="typeNameLabel">ServantLocatorPOA</span>
extends <a href="../../../org/omg/PortableServer/Servant.html" title="class in org.omg.PortableServer">Servant</a>
implements <a href="../../../org/omg/PortableServer/ServantLocatorOperations.html" title="interface in org.omg.PortableServer">ServantLocatorOperations</a>, <a href="../../../org/omg/CORBA/portable/InvokeHandler.html" title="interface in org.omg.CORBA.portable">InvokeHandler</a></pre>
<div class="block">
<span>当POA具有NON_RETAIN策略时它使用ServantLocator的servant管理器。</span>
<span>因为POA知道这位仆人经理返回的仆人只能用于一个请求它可以为仆人经理的业务提供额外的信息仆人经理的一对操作可能会合作做一些不同于ServantActivator的事情。</span>
<span>当POA使用ServantLocator接口时在对preinvoke返回的servant进行操作调用后POA将在servant管理器上调用postinvoke传递ObjectId值和Servant值作为参数等等</span>
<span>此功能可用于强制与POA关联的对象的所有请求都由仆人管理器进行调解。</span>
</div> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/omg/PortableServer/ServantLocatorPOA.html#ServantLocatorPOA--">ServantLocatorPOA</a></span>()</code> </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="t2"><span><a href="javascript:show(2);">接口方法</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><a href="../../../java/lang/String.html" title="class in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/PortableServer/ServantLocatorPOA.html#Z:Z_all_interfaces-org.omg.PortableServer.POA-byte:A-">_all_interfaces</a></span>(<a href="../../../org/omg/PortableServer/POA.html" title="interface in org.omg.PortableServer">POA</a> poa, byte[] objectId)</code>
<div class="block">
由ORB用于从仆人获取完整的类型信息。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="../../../org/omg/CORBA/portable/OutputStream.html" title="class in org.omg.CORBA.portable">OutputStream</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/PortableServer/ServantLocatorPOA.html#Z:Z_invoke-java.lang.String-org.omg.CORBA.portable.InputStream-org.omg.CORBA.portable.ResponseHandler-">_invoke</a></span>(<a href="../../../java/lang/String.html" title="class in java.lang">String</a> $method, <a href="../../../org/omg/CORBA/portable/InputStream.html" title="class in org.omg.CORBA.portable">InputStream</a> in, <a href="../../../org/omg/CORBA/portable/ResponseHandler.html" title="interface in org.omg.CORBA.portable">ResponseHandler</a> $rh)</code>
<div class="block">
由ORB调用向仆人发出请求。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="../../../org/omg/PortableServer/ServantLocator.html" title="interface in org.omg.PortableServer">ServantLocator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/PortableServer/ServantLocatorPOA.html#Z:Z_this--">_this</a></span>()</code> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="../../../org/omg/PortableServer/ServantLocator.html" title="interface in org.omg.PortableServer">ServantLocator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/PortableServer/ServantLocatorPOA.html#Z:Z_this-org.omg.CORBA.ORB-">_this</a></span>(<a href="../../../org/omg/CORBA/ORB.html" title="class in org.omg.CORBA">ORB</a> orb)</code> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.omg.PortableServer.Servant">
<!-- --> </a> <h3>Methods inherited from class org.omg.PortableServer.<a href="../../../org/omg/PortableServer/Servant.html" title="class in org.omg.PortableServer">Servant</a></h3> <code><a href="../../../org/omg/PortableServer/Servant.html#Z:Z_default_POA--">_default_POA</a>, <a href="../../../org/omg/PortableServer/Servant.html#Z:Z_get_delegate--">_get_delegate</a>, <a href="../../../org/omg/PortableServer/Servant.html#Z:Z_get_interface_def--">_get_interface_def</a>, <a href="../../../org/omg/PortableServer/Servant.html#Z:Z_is_a-java.lang.String-">_is_a</a>, <a href="../../../org/omg/PortableServer/Servant.html#Z:Z_non_existent--">_non_existent</a>, <a href="../../../org/omg/PortableServer/Servant.html#Z:Z_object_id--">_object_id</a>, <a href="../../../org/omg/PortableServer/Servant.html#Z:Z_orb--">_orb</a>, <a href="../../../org/omg/PortableServer/Servant.html#Z:Z_poa--">_poa</a>, <a href="../../../org/omg/PortableServer/Servant.html#Z:Z_set_delegate-org.omg.PortableServer.portable.Delegate-">_set_delegate</a>, <a href="../../../org/omg/PortableServer/Servant.html#Z:Z_this_object--">_this_object</a>, <a href="../../../org/omg/PortableServer/Servant.html#Z:Z_this_object-org.omg.CORBA.ORB-">_this_object</a></code></li>
</ul>
<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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.omg.PortableServer.ServantLocatorOperations">
<!-- --> </a> <h3>Methods inherited from interface org.omg.PortableServer.<a href="../../../org/omg/PortableServer/ServantLocatorOperations.html" title="interface in org.omg.PortableServer">ServantLocatorOperations</a></h3> <code><a href="../../../org/omg/PortableServer/ServantLocatorOperations.html#postinvoke-byte:A-org.omg.PortableServer.POA-java.lang.String-java.lang.Object-org.omg.PortableServer.Servant-">postinvoke</a>, <a href="../../../org/omg/PortableServer/ServantLocatorOperations.html#preinvoke-byte:A-org.omg.PortableServer.POA-java.lang.String-org.omg.PortableServer.ServantLocatorPackage.CookieHolder-">preinvoke</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="ServantLocatorPOA--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>ServantLocatorPOA</h4> <pre>public ServantLocatorPOA()</pre> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="Z:Z_invoke-java.lang.String-org.omg.CORBA.portable.InputStream-org.omg.CORBA.portable.ResponseHandler-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>_invoke</h4> <pre>public <a href="../../../org/omg/CORBA/portable/OutputStream.html" title="class in org.omg.CORBA.portable">OutputStream</a> _invoke(<a href="../../../java/lang/String.html" title="class in java.lang">String</a> $method,
<a href="../../../org/omg/CORBA/portable/InputStream.html" title="class in org.omg.CORBA.portable">InputStream</a> in,
<a href="../../../org/omg/CORBA/portable/ResponseHandler.html" title="interface in org.omg.CORBA.portable">ResponseHandler</a> $rh)</pre>
<div class="block">
<span class="descfrmTypeLabel">说明从界面: <code><a href="../../../org/omg/CORBA/portable/InvokeHandler.html#Z:Z_invoke-java.lang.String-org.omg.CORBA.portable.InputStream-org.omg.CORBA.portable.ResponseHandler-">InvokeHandler</a></code>复制</span>
</div>
<div class="block">
<span>由ORB调用向仆人发出请求。</span>
<span>ORB传递方法名称包含编组参数的InputStream以及仆人用于构造正确答复的ResponseHandler。</span>
<span>此方法只能抛出CORBA SystemException。</span>
<span>该方法必须返回由包含编组答复的ResponseHandler创建的OutputStream。</span>
<span>仆人在方法调用的生命周期之前不能保留对ResponseHandler的引用。</span>
<span>仆人行为定义如下:</span>
<p> <span>1.确定正确的方法并从InputStream中解组参数。</span> </p>
<p> <span>2.调用方法实现。</span> </p>
<p> <span>3.如果没有用户异常请使用ResponseHandler创建正常回复。</span> </p>
<p> <span>4.如果发生用户异常请使用ResponseHandler创建异常回复。</span> </p>
<p> <span>5.Massars回复ResponseHandler返回的OutputStream。</span> </p>
<p> <span>6.将OutputStream返回给ORB。</span> </p>
<p></p>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../org/omg/CORBA/portable/InvokeHandler.html#Z:Z_invoke-java.lang.String-org.omg.CORBA.portable.InputStream-org.omg.CORBA.portable.ResponseHandler-">_invoke</a></code>在界面
<code><a href="../../../org/omg/CORBA/portable/InvokeHandler.html" title="interface in org.omg.CORBA.portable">InvokeHandler</a></code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>$method</code> - 方法名称。
</dd>
<dd>
<code>in</code> - 包含
<code>InputStream</code>参数的InputStream。
</dd>
<dd>
<code>$rh</code> -该
<code>ResponseHandler</code> servant用来构造正确答复
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<code>OutputStream</code>创建的包含编组答复的OutputStream
</dd>
</dl> </li>
</ul> <a name="Z:Z_all_interfaces-org.omg.PortableServer.POA-byte:A-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>_all_interfaces</h4> <pre>public <a href="../../../java/lang/String.html" title="class in java.lang">String</a>[] _all_interfaces(<a href="../../../org/omg/PortableServer/POA.html" title="interface in org.omg.PortableServer">POA</a> poa,
byte[] objectId)</pre>
<div class="block">
<span class="descfrmTypeLabel">描述从类别复制: <code><a href="../../../org/omg/PortableServer/Servant.html#Z:Z_all_interfaces-org.omg.PortableServer.POA-byte:A-">Servant</a></code></span>
</div>
<div class="block">
由ORB用于从仆人获取完整的类型信息。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../org/omg/PortableServer/Servant.html#Z:Z_all_interfaces-org.omg.PortableServer.POA-byte:A-">_all_interfaces</a></code>在类别
<code><a href="../../../org/omg/PortableServer/Servant.html" title="class in org.omg.PortableServer">Servant</a></code>
</dd>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>poa</code> - 与仆人关联的POA。
</dd>
<dd>
<code>objectId</code> - 是与该服务对象相关联的对象的ID。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
对象的类型信息列表。
</dd>
</dl> </li>
</ul> <a name="Z:Z_this--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>_this</h4> <pre>public <a href="../../../org/omg/PortableServer/ServantLocator.html" title="interface in org.omg.PortableServer">ServantLocator</a> _this()</pre> </li>
</ul> <a name="Z:Z_this-org.omg.CORBA.ORB-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>_this</h4> <pre>public <a href="../../../org/omg/PortableServer/ServantLocator.html" title="interface in org.omg.PortableServer">ServantLocator</a> _this(<a href="../../../org/omg/CORBA/ORB.html" title="class in org.omg.CORBA">ORB</a> orb)</pre> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>