uTools-Manuals/docs/java/org/omg/CORBA/ServerRequest.html

409 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">
org.omg.CORBA
</div>
<h2 class="title" title="Class ServerRequest">Class ServerRequest</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>org.omg.CORBA.ServerRequest</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public abstract class <span class="typeNameLabel">ServerRequest</span>
extends <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<span>捕获动态骨架接口DSI请求的显式状态的对象。</span>
<span>这个类是DSI的基石 <code>Request</code> DII中的<code>Request</code>对象。</span>
<p> <span>ORB负责创建请求的实施例并将其传递给动态实现例程DIR</span> <span>通过实现<code>DynamicImplementation</code>类创建一个动态服务器DIR该类具有单个<code>invoke</code>方法。</span> <span>此方法接受一个<code>ServerRequest</code>对象。</span> <span>抽象类<code>ServerRequest</code>定义了访问方法名称,参数和请求上下文的方法,以及将请求结果设置为返回值或异常的方法。</span> </p>
<p> <span>访问请求参数的微妙之处在于DIR需要提供有关预期参数的类型信息因为没有关于这些参数的编译信息。</span> <span>该信息通过一个提供<code>NVList</code> ,这是一个列表<code>NamedValue</code>对象。</span> <span>每个<code>NamedValue</code>对象包含一个<code>Any</code>对象,这反过来又具有<code>TypeCode</code>表示参数的类型的对象。</span> </p>
<p> <span>类似地,需要为响应提供类型信息,对于预期结果或异常,因此方法<code>result</code><code>except</code><code>Any</code>对象作为参数。</span> </p>
<p></p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../org/omg/CORBA/DynamicImplementation.html" title="在org.omg.CORBA中的类"><code>DynamicImplementation</code></a> <a href="../../../org/omg/CORBA/NVList.html" title="在org.omg.CORBA中的类"><code>NVList</code></a> <a href="../../../org/omg/CORBA/NamedValue.html" title="在org.omg.CORBA中的类"><code>NamedValue</code></a></span>
</dd>
</dl> </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/CORBA/ServerRequest.html#ServerRequest--">ServerRequest</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="t3"><span><a href="javascript:show(4);">抽象方法</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>
<span class="tableTab" id="t6"><span><a href="javascript:show(32);">弃用的方法</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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/CORBA/ServerRequest.html#arguments-org.omg.CORBA.NVList-">arguments</a></span>(<a href="../../../org/omg/CORBA/NVList.html" title="class in org.omg.CORBA">NVList</a> args)</code>
<div class="block">
指定方法参数类型并检索“in”和“inout”参数值。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>abstract <a href="../../../org/omg/CORBA/Context.html" title="class in org.omg.CORBA">Context</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/CORBA/ServerRequest.html#ctx--">ctx</a></span>()</code>
<div class="block">
<span>当操作不是属性访问并且操作的IDL定义包含上下文表达式时返回IDL中为操作指定的上下文信息;</span>
<span>否则返回零<code>Context</code>参考。</span>
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/CORBA/ServerRequest.html#except-org.omg.CORBA.Any-">except</a></span>(<a href="../../../org/omg/CORBA/Any.html" title="class in org.omg.CORBA">Any</a> any)</code>
<div class="block">
<span><span class="deprecatedLabel">已弃用</span></span>
<div class="block">
<span><span class="deprecationComment">使用set_exception</span></span>
</div>
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<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/CORBA/ServerRequest.html#op_name--">op_name</a></span>()</code>
<div class="block">
<span><span class="deprecatedLabel">已弃用</span></span>
<div class="block">
<span><span class="deprecationComment">使用操作()</span></span>
</div>
</div> </td>
</tr>
<tr class="altColor" id="i4">
<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/CORBA/ServerRequest.html#operation--">operation</a></span>()</code>
<div class="block">
抛出
<code>org.omg.CORBA.NO_IMPLEMENT</code>异常。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/CORBA/ServerRequest.html#params-org.omg.CORBA.NVList-">params</a></span>(<a href="../../../org/omg/CORBA/NVList.html" title="class in org.omg.CORBA">NVList</a> params)</code>
<div class="block">
<span><span class="deprecatedLabel">已弃用</span></span>
<div class="block">
<span><span class="deprecationComment">使用方法<code>arguments</code></span></span>
</div>
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/CORBA/ServerRequest.html#result-org.omg.CORBA.Any-">result</a></span>(<a href="../../../org/omg/CORBA/Any.html" title="class in org.omg.CORBA">Any</a> any)</code>
<div class="block">
<span><span class="deprecatedLabel">已弃用</span></span>
<div class="block">
<span><span class="deprecationComment">使用方法<code>set_result</code></span></span>
</div>
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/CORBA/ServerRequest.html#set_exception-org.omg.CORBA.Any-">set_exception</a></span>(<a href="../../../org/omg/CORBA/Any.html" title="class in org.omg.CORBA">Any</a> any)</code>
<div class="block">
抛出
<code>org.omg.CORBA.NO_IMPLEMENT</code>例外。
</div> </td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/omg/CORBA/ServerRequest.html#set_result-org.omg.CORBA.Any-">set_result</a></span>(<a href="../../../org/omg/CORBA/Any.html" title="class in org.omg.CORBA">Any</a> any)</code>
<div class="block">
抛出
<code>org.omg.CORBA.NO_IMPLEMENT</code>例外。
</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">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="ServerRequest--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>ServerRequest</h4> <pre>public ServerRequest()</pre> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="op_name--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>op_name</h4> <pre><a href="../../../java/lang/Deprecated.html" title="annotation in java.lang">@Deprecated</a>
public <a href="../../../java/lang/String.html" title="class in java.lang">String</a> op_name()</pre>
<div class="block">
<span><span class="deprecatedLabel">已弃用</span></span>
<span><span class="deprecationComment">使用操作()</span></span>
</div>
<div class="block">
<span>检索被调用的操作的名称。</span>
<span>根据OMG IDL的规则这些名称在此对象的“最为传统”界面支持的所有操作中必须是唯一的。</span>
<span>注意,用来获取和设置属性的操作名称为<code>_get_&lt;attribute_name&gt;</code><code>_set_&lt;attribute_name&gt;</code>分别。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
要调用的操作的名称
</dd>
</dl> </li>
</ul> <a name="operation--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>operation</h4> <pre>public <a href="../../../java/lang/String.html" title="class in java.lang">String</a> operation()</pre>
<div class="block">
<span>抛出<code>org.omg.CORBA.NO_IMPLEMENT</code>异常。</span>
<p> <span>检索被调用的操作的名称。</span> <span>根据OMG IDL的规则这些名称在此对象的“最为传统”界面支持的所有操作中必须是唯一的。</span> <span>注意,用来获取和设置属性的操作名称为<code>_get_&lt;attribute_name&gt;</code><code>_set_&lt;attribute_name&gt;</code>分别。</span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
要调用的操作的名称
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="package-summary.html#unimpl"><code>CORBA</code> package comments for unimplemented features</a>
</dd>
</dl> </li>
</ul> <a name="params-org.omg.CORBA.NVList-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>params</h4> <pre><a href="../../../java/lang/Deprecated.html" title="annotation in java.lang">@Deprecated</a>
public void params(<a href="../../../org/omg/CORBA/NVList.html" title="class in org.omg.CORBA">NVList</a> params)</pre>
<div class="block">
<span><span class="deprecatedLabel">已弃用</span></span>
<span><span class="deprecationComment">使用方法<code>arguments</code></span></span>
</div>
<div class="block">
<span>指定方法参数类型并检索“in”和“inout”参数值。</span>
<p> <span>请注意,此方法已弃用;</span> <span>使用方法<code>arguments</code>它的位置。</span> </p>
<p> <span>除非调用方法<code>set_exception</code> DIR必须正确调用此方法一次即使方法签名不包含参数。</span> <span>一旦方法<code>arguments</code><code>set_exception</code>被调用,调用<code>arguments</code>在同一个<code>ServerRequest</code>对象将导致一个<code>BAD_INV_ORDER</code>系统异常。</span> <span>DIR必须以方法<code>arguments</code>按照描述操作参数类型的TypeCodes和Flags初始化的NVList按照它们在IDL规范中显示的顺序从左到右</span> <span>一个潜在-不同的NVList将从返回<code>arguments</code> 用“在”和“INOUT”提供的参数值。</span> <span>如果不调用方法<code>set_exception</code> DIR必须在返回之前为返回的NVList提供任何“out”参数的返回值并且还可以更改任何“inout”参数的返回值。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>params</code> - 该方法的参数,以
<code>NVList</code>对象的形式
</dd>
</dl> </li>
</ul> <a name="arguments-org.omg.CORBA.NVList-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>arguments</h4> <pre>public void arguments(<a href="../../../org/omg/CORBA/NVList.html" title="class in org.omg.CORBA">NVList</a> args)</pre>
<div class="block">
<span>指定方法参数类型并检索“in”和“inout”参数值。</span>
<span>除非调用方法<code>set_exception</code> 否则DIR必须正确调用此方法一次即使方法签名不包含参数。</span>
<span>一旦方法<code>arguments</code><code>set_exception</code>被调用,调用<code>arguments</code>在同一个<code>ServerRequest</code>对象将导致一个<code>BAD_INV_ORDER</code>系统异常。</span>
<span>DIR必须按照它们以IDL规范从左到右显示的顺序 <code>arguments</code>一个用TypeCodes和Flags初始化的NVList方法描述操作的参数类型。</span>
<span>一个潜在-不同的NVList将从返回<code>arguments</code> 用“在”和“INOUT”提供的参数值。</span>
<span>如果没有调用方法<code>set_exception</code> DIR必须在返回之前提供返回的NVList返回值并返回任何“out”参数并且还可以更改任何“inout”参数的返回值。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>args</code> - 该方法的参数以NVList的形式
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="package-summary.html#unimpl"><code>CORBA</code> package comments for unimplemented features</a>
</dd>
</dl> </li>
</ul> <a name="result-org.omg.CORBA.Any-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>result</h4> <pre><a href="../../../java/lang/Deprecated.html" title="annotation in java.lang">@Deprecated</a>
public void result(<a href="../../../org/omg/CORBA/Any.html" title="class in org.omg.CORBA">Any</a> any)</pre>
<div class="block">
<span><span class="deprecatedLabel">已弃用</span></span>
<span><span class="deprecationComment">使用方法<code>set_result</code></span></span>
</div>
<div class="block">
<span>指定调用的任何返回值。</span>
<p> <span>请注意,此方法已弃用;</span> <span>使用方法<code>set_result</code>在它的位置。</span> </p>
<p> <span>除非调用方法<code>set_exception</code> ,否则如果调用的方法具有非空结果类型,那么方法<code>set_result</code>必须在DIR返回之前被精确调用一次。</span> <span>如果操作具有无效结果类型,方法<code>set_result</code>可以可选地被调用一次,其类型为<code>tk_void</code><code>Any</code>对象。</span> <span>调用方法<code>set_result</code>方法之前<code>arguments</code>被称为或方法之后<code>set_result</code><code>set_exception</code>被称为将导致BAD_INV_ORDER异常。</span> <span>当IDL操作包含上下文表达式时或当传递给参数的NVList没有描述客户端传递的所有参数时调用方法<code>set_result</code>而不先前调用方法<code>ctx</code> 可能会导致MARSHAL系统异常。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>any</code> - 一个
<code>Any</code>要设置的返回值的
<code>Any</code>对象
</dd>
</dl> </li>
</ul> <a name="set_result-org.omg.CORBA.Any-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>set_result</h4> <pre>public void set_result(<a href="../../../org/omg/CORBA/Any.html" title="class in org.omg.CORBA">Any</a> any)</pre>
<div class="block">
<span>抛出<code>org.omg.CORBA.NO_IMPLEMENT</code>异常。</span>
<p> <span>指定调用的任何返回值。</span> <span>除非调用方法<code>set_exception</code> ,否则调用的方法具有非空结果类型,那么方法<code>set_result</code>必须在DIR返回之前被精确调用一次。</span> <span>如果操作具有无效结果类型,方法<code>set_result</code>可以可选地被调用一次,其类型为<code>tk_void</code><code>Any</code>对象。</span> <span>调用方法<code>set_result</code>之前方法<code>arguments</code>已被调用或方法<code>set_result</code><code>set_exception</code>已被调用将导致BAD_INV_ORDER异常。</span> <span>当IDL操作包含上下文表达式时或者当传递给参数的NVList没有描述客户端传递的所有参数时调用方法<code>set_result</code>而不先前调用方法<code>ctx</code> 可能会导致MARSHAL系统异常。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>any</code> - 一个
<code>Any</code>要设置的返回值的
<code>Any</code>对象
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="package-summary.html#unimpl"><code>CORBA</code> package comments for unimplemented features</a>
</dd>
</dl> </li>
</ul> <a name="except-org.omg.CORBA.Any-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>except</h4> <pre><a href="../../../java/lang/Deprecated.html" title="annotation in java.lang">@Deprecated</a>
public void except(<a href="../../../org/omg/CORBA/Any.html" title="class in org.omg.CORBA">Any</a> any)</pre>
<div class="block">
<span><span class="deprecatedLabel">已弃用</span></span>
<span><span class="deprecationComment">使用set_exception</span></span>
</div>
<div class="block">
<span>DIR可以随时调用set_exception将异常返回给客户端。</span>
<span>传递给set_exception的Any必须包含在调用操作的IDL定义的raise表达式中指定的系统异常或用户异常。</span>
<span>传入任何不包含异常的任何将导致BAD_PARAM系统异常。</span>
<span>传递未列出的用户异常将导致DIR接收到BAD_PARAM系统异常或者在客户端中接收到UNKNOWN_EXCEPTION系统异常。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>any</code> - 包含
<code>Any</code>对象
</dd>
</dl> </li>
</ul> <a name="set_exception-org.omg.CORBA.Any-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>set_exception</h4> <pre>public void set_exception(<a href="../../../org/omg/CORBA/Any.html" title="class in org.omg.CORBA">Any</a> any)</pre>
<div class="block">
<span>抛出<code>org.omg.CORBA.NO_IMPLEMENT</code>异常。</span>
<p> <span>将给定的异常返回给客户端。</span> <span>该方法由DIR调用可以随时调用该方法。</span> <span>传递给此方法的<code>Any</code>对象必须包含系统异常或调用操作的IDL定义中指定的用户异常之一。</span> <span>传递不包含异常的<code>Any</code>对象将导致抛出BAD_PARAM系统异常。</span> <span>传递未列出的用户异常将导致DIR接收到BAD_PARAM系统异常或者在客户端中接收到UNKNOWN_EXCEPTION系统异常。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>any</code> - 包含
<code>Any</code>对象
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../org/omg/CORBA/BAD_PARAM.html" title="class in org.omg.CORBA">BAD_PARAM</a></code> - 如果给定的
<code>Any</code>对象不包含异常,或异常是不公开的用户异常
</dd>
<dd>
<code>UNKNOWN_EXCEPTION</code> - 如果给定的异常是未列出的用户异常并且DIR没有收到BAD_PARAM异常
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="package-summary.html#unimpl"><code>CORBA</code> package comments for unimplemented features</a>
</dd>
</dl> </li>
</ul> <a name="ctx--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>ctx</h4> <pre>public abstract <a href="../../../org/omg/CORBA/Context.html" title="class in org.omg.CORBA">Context</a> ctx()</pre>
<div class="block">
<span>当操作不是属性访问并且操作的IDL定义包含上下文表达式时返回IDL中为操作指定的上下文信息;</span>
<span>否则返回零<code>Context</code>参考。</span>
<span>调用方法<code>ctx</code>方法之前<code>arguments</code>被称为或方法之后<code>ctx</code> <code>set_result</code> ,或<code>set_exception</code>被称为将导致BAD_INV_ORDER系统异常。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
用于解析其值需要与调用一起发送的任何上下文字符串的上下文对象。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../org/omg/CORBA/BAD_INV_ORDER.html" title="class in org.omg.CORBA">BAD_INV_ORDER</a></code> -如果1的方法
<code>ctx</code>方法之前被调用
<code>arguments</code>2所述的方法
<code>ctx</code>被称为主叫后
<code>set_result</code>
<code>set_exception</code>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>