第 62 章 Apache CXF 消息处理阶段

入站阶段

表 62.1 “入站消息处理阶段” 列出入站拦截器链中可用的阶段。

表 62.1. 入站消息处理阶段

阶段描述

接收

执行特定于传输的处理,如确定二进制附件的 MIME 边界。

PRE_STREAM

处理传输接收的原始数据流。

USER_STREAM

POST_STREAM

READ

确定请求是否为 SOAP 或 XML 消息,并构建会添加正确的拦截器。此阶段也会处理 SOAP 消息标头。

PRE_PROTOCOL

执行协议级别处理。这包括处理 WS114 标头和 SOAP 消息属性的处理。

USER_PROTOCOL

POST_PROTOCOL

UNMARSHAL

将消息数据解压缩到应用级别代码使用的对象中。

PRE_LOGICAL

处理 unmarshalled 消息数据。

USER_LOGICAL

POST_LOGICAL

PRE_INVOKE

调用

将消息传递给应用程序代码。在服务器端,服务实施在此阶段被调用。在客户端,响应被移回到应用程序。

POST_INVOKE

调用出站拦截器链。

出站阶段

表 62.2 “入站消息处理阶段” 列出入站拦截器链中可用的阶段。

表 62.2. 入站消息处理阶段

阶段描述

设置

执行链中后续阶段所需的任何集合。

PRE_LOGICAL

对从应用程序级别传递的 unmarshalled 数据执行处理。

USER_LOGICAL

POST_LOGICAL

PREPARE_SEND

打开连接,以在 wire 上写入消息。

PRE_STREAM

执行所需的处理,以准备消息进入数据流中。

PRE_PROTOCOL

开始处理协议特定信息。

编写协议消息。

PRE_MARSHAL

marshals 消息。

MARSHAL

POST_MARSHAL

USER_PROTOCOL

处理协议消息。

POST_PROTOCOL

USER_STREAM

处理字节级消息。

POST_STREAM

SEND

发送消息并关闭传输流。

重要

出站拦截器链有一组镜像结束阶段,其名称附加了 _ENDING。结束阶段使用拦截器,在数据在线上写入前需要进行一些终端操作。