|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectorg.omg.CORBA.ServerRequest
public abstract class ServerRequest
捕获对动态框架接口(Dynamic Skeleton Interface,DSI)请求的显式状态的对象。此类是 DSI 的基础,类似于 DII 中的 Request 对象。
ORB 负责创建具体的请求,并将它传递给动态实现例程(Dynamic Implementation Routine,DIR)。动态 servant(一个 DIR)是通过实现 DynamicImplementation 类创建的,该类有一个 invoke 方法。此方法接受 ServerRequest 对象。
抽象类 ServerRequest 定义了一些方法,用来访问请求的方法名称、参数和上下文,以及将该请求的结果设置为返回值或异常。
访问该请求参数的一个微妙之处在于:DIR 需要提供有关所期望参数的类型信息,因为没有关于这些类型的已编译信息。此信息是通过 NVList 提供的,NVList 是 NamedValue 对象列表。每个 NamedValue 对象都包含一个 Any 对象,每个 Any 对象都有一个表示参数类型的 TypeCode 对象。
类似地,还需要为响应、所期望的结果或异常提供类型信息,因此方法 result 和 except 使用 Any 对象作为参数。
DynamicImplementation,
NVList,
NamedValue| 构造方法摘要 | |
|---|---|
ServerRequest()
|
|
| 方法摘要 | |
|---|---|
void |
arguments(NVList args)
指定方法参数类型并检索 "in" 和 "inout" 参数值。 |
abstract Context |
ctx()
当操作不是一个属性访问并且该操作的 IDL 定义中包含上下文表达式时,该操作返回用 IDL 指定的上下文信息;否则返回 nil Context 引用。 |
void |
except(Any any)
已过时。 使用 set_exception() |
String |
op_name()
已过时。 使用 operation() |
String |
operation()
抛出 org.omg.CORBA.NO_IMPLEMENT 异常。 |
void |
params(NVList params)
已过时。 使用方法 arguments |
void |
result(Any any)
已过时。 使用方法 set_result |
void |
set_exception(Any any)
抛出 org.omg.CORBA.NO_IMPLEMENT 异常。 |
void |
set_result(Any any)
抛出 org.omg.CORBA.NO_IMPLEMENT 异常。 |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public ServerRequest()
| 方法详细信息 |
|---|
@Deprecated public String op_name()
_get_<attribute_name> 和 _set_<attribute_name>。
public String operation()
org.omg.CORBA.NO_IMPLEMENT 异常。
检索将被调用的操作的名称。根据 OMG IDL 的规则,这些名称在此对象的“最终派生”接口所支持的所有操作中必须是唯一的。注意,用来获取和设置属性的操作名称分别是 _get_<attribute_name> 和 _set_<attribute_name>。
CORBA 包中有关未实现特性的注释@Deprecated public void params(NVList params)
arguments
注意,此方法已过时,使用 arguments 方法替代它。
如果没有调用 set_exception 方法,则 DIR 必须调用此方法一次,即使该方法签名不包含任何参数。一旦已经调用 arguments 或 set_exception 方法,则对同一个 ServerRequest 对象调用 arguments 将导致 BAD_INV_ORDER 系统异常。DIR 必须向方法 arguments 传入使用 TypeCodes 初始化的 NVList 和描述该操作参数类型的 Flag,按照它们在 IDL 规范中出现的顺序(从左到右)传入。使用所提供的 "in" 和 "inout" 参数值,arguments 返回的 NVList 可能不同。如果没有调用 set_exception 方法,则返回前 DIR 必须提供所返回的 NVList,该列表带有用于任何 "out" 参数的返回值,DIR 还可以更改用于任何 "inout" 参数的返回值。
params - NVList 对象形式的方法参数public void arguments(NVList args)
set_exception 方法,则 DIR 必须调用此方法一次,即使该方法签名不包含任何参数。一旦已经调用 arguments 或 set_exception 方法,则对同一个 ServerRequest 对象调用 arguments 将导致 BAD_INV_ORDER 系统异常。DIR 必须向方法 arguments 传入使用 TypeCodes 初始化的 NVList 和描述该操作参数类型的 Flag,按照它们在 IDL 规范中出现的顺序(从左到右)传入。使用所提供的 "in" 和 "inout" 参数值,arguments 返回的 NVList 可能不同。如果没有调用 set_exception 方法,则返回前 DIR 必须提供所返回的 NVList,该列表带有用于任何 "out" 参数的返回值,DIR 还可以更改用于任何 "inout" 参数的返回值。
args - NVList 形式的方法参数CORBA 包中有关未实现特性的注释@Deprecated public void result(Any any)
set_result
注意,不推荐使用此方法,建议使用 set_result 方法替代它。
如果没有调用 set_exception 方法,则在调用的方法有一个非 void 结果类型时,必须在 DIR 返回前调用 set_result 方法一次。如果该操作有一个 void 结果类型,则可以有选择地调用 set_result 方法一次,并使用类型为 tk_void 的 Any 对象作为参数。在调用 arguments 方法之前调用 set_result 方法,或者在调用 set_result 或 set_exception 方法之后调用该方法将导致 BAD_INV_ORDER 异常。当 IDL 操作包含一个上下文表达式,或者传递给 arguments 的 NVList 没有描述客户端传递的所有参数时,在调用 set_result 方法之前没有调用 ctx 方法将导致 MARSHAL 系统异常。
any - 包含将被设置的返回值的 Any 对象public void set_result(Any any)
org.omg.CORBA.NO_IMPLEMENT 异常。
为调用指定任何返回值。如果没有调用 set_exception 方法,则在调用的方法有一个非 void 结果类型时,必须在 DIR 返回前调用 set_result 方法一次。如果该操作有一个 void 结果类型,则可以有选择地调用 set_result 方法一次,并使用类型为 tk_void 的 Any 对象作为参数。在调用 arguments 方法之前调用 set_result 方法,或者在调用 set_result 或 set_exception 方法之后调用该方法将导致 BAD_INV_ORDER 异常。当 IDL 操作包含一个上下文表达式,或者传递给参数的 NVList 没有描述客户端传递的所有参数时,调用 set_result 方法(没有首先调用 ctx 方法)将导致 MARSHAL 系统异常。
any - 包含将被设置的返回值的 Any 对象CORBA 包中有关未实现特性的注释@Deprecated public void except(Any any)
any - 包含异常的 Any 对象public void set_exception(Any any)
org.omg.CORBA.NO_IMPLEMENT 异常。
将给定异常返回给客户端。此方法由 DIR 随时调用。传递给此方法的 Any 对象必须包含一个系统异常,或者所调用操作 IDL 定义中指定的用户异常之一。传入不包含任何异常的 Any 对象将导致抛出 BAD_PARAM 系统异常。传入未列出的用户异常将导致 DIR 收到一个 BAD_PARAM 系统异常,或导致客户端收到一个 UNKNOWN_EXCEPTION 系统异常。
any - 包含异常的 Any 对象
BAD_PARAM - 如果给定 Any 对象不包含异常,或者该异常是一个未列出的用户异常
UNKNOWN_EXCEPTION - 如果给定异常是一个未列出的用户异常,并且 DIR 没有收到 BAD_PARAM 异常CORBA 包中有关未实现特性的注释public abstract Context ctx()
Context 引用。在调用 arguments 方法之前调用 ctx 方法,或者在调用 ctx、set_result 或 set_exception 方法之后调用该方法都将导致 BAD_INV_ORDER 系统异常。
BAD_INV_ORDER - 如果 (1) 在调用 arguments 方法之前调用 ctx 方法或 (2) 在调用 set_result 或 set_exception 之后调用 ctx 方法
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2008 Sun Microsystems, Inc. 保留所有权利。请遵守GNU General Public License, version 2 only。