Red Hat Training

A Red Hat training course is available for Red Hat Fuse

Appendix F. Apache CXF Message Processing Phases

Inbound phases

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

Table F.1. Inbound message processing phases

PhaseDescription
RECEIVEPerforms transport specific processing, such as determining MIME boundaries for binary attachments.
PRE_STREAMProcesses the raw data stream received by the transport.
USER_STREAM
POST_STREAM
READDetermines 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_PROTOCOLPerforms protocol level processing. This includes processing of WS-* headers and processing of the SOAP message properties.
USER_PROTOCOL
POST_PROTOCOL
UNMARSHALUnmarshals the message data into the objects used by the application level code.
PRE_LOGICALProcesses the unmarshalled message data.
USER_LOGICAL
POST_LOGICAL
PRE_INVOKE 
INVOKEPasses 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_INVOKEInvokes the outbound interceptor chain.

Outbound phases

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

Table F.2. Inbound message processing phases

PhaseDescription
SETUPPerforms any set up that is required by later phases in the chain.
PRE_LOGICALPerforms processing on the unmarshalled data passed from the application level.
USER_LOGICAL
POST_LOGICAL
PREPARE_SENDOpens the connection for writing the message on the wire.
PRE_STREAMPerforms processing required to prepare the message for entry into a data stream.
PRE_PROTOCOLBegins processing protocol specific information.
WRITEWrites the protocol message.
PRE_MARSHALMarshals the message.
MARSHAL
POST_MARSHAL
USER_PROTOCOLProcess the protocol message.
POST_PROTOCOL
USER_STREAMProcess the byte-level message.
POST_STREAM
SENDSends 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.