Chapter 62. Apache CXF Message Processing Phases

Inbound phases

Table 62.1, “Inbound message processing phases” lists the phases available in inbound interceptor chains.

Table 62.1. Inbound message processing phases

PhaseDescription

RECEIVE

Performs transport specific processing, such as determining MIME boundaries for binary attachments.

PRE_STREAM

Processes the raw data stream received by the transport.

USER_STREAM

POST_STREAM

READ

Determines if a request is a SOAP or XML message and builds adds the proper interceptors. SOAP message headers are also processed in this phase.

PRE_PROTOCOL

Performs protocol level processing. This includes processing of WS-* headers and processing of the SOAP message properties.

USER_PROTOCOL

POST_PROTOCOL

UNMARSHAL

Unmarshals the message data into the objects used by the application level code.

PRE_LOGICAL

Processes the unmarshalled message data.

USER_LOGICAL

POST_LOGICAL

PRE_INVOKE

INVOKE

Passes the message to the application code. On the server side, the service implementation is invoked in this phase. On the client side, the response is handed back to the application.

POST_INVOKE

Invokes the outbound interceptor chain.

Outbound phases

Table 62.2, “Inbound message processing phases” lists the phases available in inbound interceptor chains.

Table 62.2. Inbound message processing phases

PhaseDescription

SETUP

Performs any set up that is required by later phases in the chain.

PRE_LOGICAL

Performs processing on the unmarshalled data passed from the application level.

USER_LOGICAL

POST_LOGICAL

PREPARE_SEND

Opens the connection for writing the message on the wire.

PRE_STREAM

Performs processing required to prepare the message for entry into a data stream.

PRE_PROTOCOL

Begins processing protocol specific information.

WRITE

Writes the protocol message.

PRE_MARSHAL

Marshals the message.

MARSHAL

POST_MARSHAL

USER_PROTOCOL

Process the protocol message.

POST_PROTOCOL

USER_STREAM

Process the byte-level message.

POST_STREAM

SEND

Sends the message and closes the transport stream.

Important

Outbound interceptor chains have a mirror set of ending phases whose names are appended with _ENDING. The ending phases are used interceptors that require some terminal action to occur before data is written on the wire.