java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

org.omg.PortableInterceptor
接口 ServerRequestInterceptorOperations

所有超级接口:
InterceptorOperations
所有已知子接口:
ServerRequestInterceptor

public interface ServerRequestInterceptorOperations
extends InterceptorOperations

服务器端的请求 interceptor。

请求 Interceptor 用于通过 ORB 在指定点截取请求/应答序列流,以便服务能够查询请求信息并操作在客户端和服务器之间传播的服务上下文。请求 Interceptor 主要用途是使 ORB 服务能够在客户端和服务器之间传输上下文信息。请求 Interceptor 有两种类型:客户端和服务器端。

编写服务器端 Interceptor 需要实现 ServerRequestInterceptor 接口。

另请参见:
ServerRequestInfo

方法摘要
 void receive_request_service_contexts(ServerRequestInfo ri)
          允许 interceptor 处理服务上下文信息。
 void receive_request(ServerRequestInfo ri)
          允许 Interceptor 在所有信息(包括操作参数)可用后查询信息。
 void send_exception(ServerRequestInfo ri)
          允许 Interceptor 在向客户端抛出异常前查询异常信息并修改应答服务上下文。
 void send_other(ServerRequestInfo ri)
          允许 Interceptor 在请求引起了正常应答和异常之外的情况时查询可用信息。
 void send_reply(ServerRequestInfo ri)
          允许 Interceptor 在已调用目标操作后、向客户端返回应答前查询应答信息并修改应答服务上下文。
 
从接口 org.omg.PortableInterceptor.InterceptorOperations 继承的方法
destroy, name
 

方法详细信息

receive_request_service_contexts

void receive_request_service_contexts(ServerRequestInfo ri)
                                      throws ForwardRequest
允许 interceptor 处理服务上下文信息。

在此截取点,Interceptor 必须从传入请求获取其服务上下文信息,并将其传输到 PortableInterceptor.Current 的槽 (slot)。

在调用 servant 管理器之前调用此截取点。此时操作参数尚未可用。此截取点可能执行与目标调用相同的线程,也可能不执行。

此截取点可能抛出系统异常。如果抛出异常,则不调用任何其他 Interceptor 的 receive_request_service_contexts 操作。移除那些 Flow Stack 上的 Interceptor 并调用其 send_exception 截取点。

此截取点同样可能抛出 ForwardRequest 异常。如果 Interceptor 抛出此异常,则不调用任何其他 Interceptor 的 receive_request_service_contexts 操作。移除那些 Flow Stack 上的 Interceptor 并调用其 send_other 截取点。

如果符合的 Interceptor 从此截取点抛出系统异常,则它们应该完全遵守 completion_status 语义。completion_status 应为 COMPLETED_NO。

参数:
ri - 关于将被截取的当前请求的信息。
抛出:
ForwardRequest - 抛出此异常指示 ORB 重试请求应该与异常中给定的新对象一起发生。

receive_request

void receive_request(ServerRequestInfo ri)
                     throws ForwardRequest
允许 Interceptor 在所有信息(包括操作参数)可用后查询信息。此截取点应该执行与目标调用相同的线程。

在 DSI 模型中,因为在用户代码调用 arguments 时参数首次可用,所以将从 arguments 内部调用 receive_request。有可能不是在 DSI 模型中调用 arguments。目标可以在调用 arguments 之前调用 set_exception。ORB 应保证通过 argumentsset_exception 调用 receive_request 一次。如果通过 set_exception 调用,则请求参数将导致抛出 NO_RESOURCES,并带有标准次要代码 1。

此截取点可能抛出系统异常。如果抛出异常,则不调用任何其他 Interceptor 的 receive_request 操作。移除那些 Flow Stack 上的 Interceptor 并调用其 send_exception 截取点。

此截取点同样可能抛出 ForwardRequest 异常。如果 Interceptor 抛出此异常,则不调用任何其他 Interceptor 的 receive_request 操作。移除那些 Flow Stack 上的 Interceptor 并调用其 send_other 截取点。

如果符合的 Interceptor 从此截取点抛出系统异常,则它们应该完全遵守 completion_status 语义。completion_status 应为 COMPLETED_NO

参数:
ri - 关于将被截取的当前请求的信息。
抛出:
ForwardRequest - 抛出此异常指示 ORB 重试请求应该与异常中给定的新对象一起发生。

send_reply

void send_reply(ServerRequestInfo ri)
允许 Interceptor 在已调用目标操作后、向客户端返回应答前查询应答信息并修改应答服务上下文。此截取点应该执行与目标调用相同的线程。

此截取点可能抛出系统异常。如果抛出异常,则不调用任何其他 Interceptor 的 send_reply 操作。Flow Stack 中剩余的 Interceptor 将使其 send_exception 截取点被调用。

如果符合的 Interceptor 从此截取点抛出系统异常,则它们应该完全遵守 completion_status 语义。completion_status 应为 COMPLETED_YES

参数:
ri - 关于将被截取的当前请求的信息。

send_exception

void send_exception(ServerRequestInfo ri)
                    throws ForwardRequest
允许 Interceptor 在向客户端抛出异常前查询异常信息并修改应答服务上下文。当发生异常时,将调用此截取点。此截取点应该执行与目标调用相同的线程。

此截取点可能抛出系统异常。这可以更改连续 Interceptor(从 Flow Stack 中移除的)调用 send_exception 收到的异常。对客户端抛出的异常将是 Interceptor 抛出的最终异常或者原始异常(如果没有 Interceptor 更改了异常)。

此截取点同样可能抛出 ForwardRequest 异常。如果 Interceptor 抛出此异常,则不调用任何其他 Interceptor 的 send_exception 操作。将调用 Flow Stack 中剩余 Interceptor 的 send_other 截取点。

如果异常的 completion_status 不是 COMPLETED_NO,则此截取点抛出 ForwardRequest 异常是不恰当的。将失去请求的最多一次 (at-most-once) 语义。

如果符合的 Interceptor 从此截取点抛出系统异常,则它们应该完全遵守 completion_status 语义。如果原始异常为系统异常,则新异常的 completion_status 将与原始异常相同。如果原始异常为用户异常,则新异常的 completion_status 应为 COMPLETED_YES

参数:
ri - 关于将被截取的当前请求的信息。
抛出:
ForwardRequest - 抛出此异常指示 ORB 重试请求应该与异常中给定的新对象一起发生。

send_other

void send_other(ServerRequestInfo ri)
                throws ForwardRequest
允许 Interceptor 在请求引起了正常应答和异常之外的情况时查询可用信息。例如,请求可以引起重试(例如,收到带有 LOCATION_FORWARD 状态的 GIOP 应答)。此截取点应该执行与目标调用相同的线程。

此截取点可能抛出系统异常。如果抛出异常,则不调用任何其他 Interceptor 的 send_other 操作。将调用 Flow Stack 中剩余 Interceptor 的 send_exception 截取点。

此截取点同样可能抛出 ForwardRequest 异常。如果 Interceptor 抛出此异常,则使用 ForwardRequest 异常提供的新信息调用连续 Interceptor 的 send_other 操作。

如果符合的 Interceptor 从此截取点抛出系统异常,则它们应该完全遵守 completion_status 语义。completion_status 应为 COMPLETED_NO

参数:
ri - 关于将被截取的当前请求的信息。
抛出:
ForwardRequest - 抛出此异常指示 ORB 重试请求应该与异常中给定的新对象一起发生。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策