You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by harbhanu <ha...@huawei.com> on 2008/05/12 14:16:14 UTC
Default Interceptor's functionality
Hi,
As per the earlier mails what I learnt is that interceptor holds the core
logic with regards to processing of messages. So, I have decided to compile
the top level tasks performed by each of the predefined interceptors getting
invoked during in/out/fault processing. I am not able to formulate the same
for most of the interceptors, as am a bit new to this and the code also
doesn't provide too descriptive documentation. I couldn't find much
documentation on net too.
Please point me to some appropriate resources. Thanks !!
[Apologies incase I am being too demanding from the group]
The information that I have till now...although it might have some errors...
Following list contains interceptors for in/out message processing at the
server side...
Default Incoming interceptor chain (Server):
AttachmentInInterceptor
Constructs soap message with attachments from the MIME input stream
StaxInInterceptor
Creates an XMLStreamReader from the transport InputStream on the
Message
ReadHeadersInterceptor
Adds information pertaining to different headers in Message header
SoapActionInInterceptor
Parses "soapaction" information, based on input message type i.e.
SOAP 1.1 or 1.2
MustUnderstandInterceptor
Checks the MustUnderstand headers, its applicability and process it,
if required
SOAPHandlerInterceptor
SOAP Handler as per JAX-WS
LogicalHandlerInInterceptor
Logical Handler as per JAX-WS
CheckFaultInterceptor
Checks for fault, if present aborts interceptor chain and invokes
fault handler
URIMappingInterceptor
Can handle HTTP GET, extracts operation info and sets the same in
the Message
DocLiteralnInterceptor
Extracts operation information from the message
SoapHeaderInterceptor
Perform databinding of the SOAP headers
WrapperClassInInterceptor
-
SwAInInterceptor
-
HolderInInterceptor
-
ServiceInvokerInInterceptor
-
-------------------------------
Default Outgoing chain stack (Server):
HolderOutInterceptor
-
SwAOutInterceptor
-
WrapperClassOutInterceptor
-
SoapHeaderOutFilterInterceptor
Removes inbound marked headers
SoapActionOutInterceptor
Sets the SOAP Action on the wrapped operation, based on message type
i.e. SOAP 1.1 or 1.2
Does it when, if (!(message ==
message.getExchange().getInMessage()))
Query: What does this condition means, when this interceptor itself
is plugged on outgoing chain ?
MessageSenderInterceptor
SoapPreProtocolOutInterceptor
This interceptor is responsible for setting up the SOAP version and
header,
so that this is available to any pre-protocol interceptors that
require these to be available.
AttachmentOutInterceptor
-
StaxOutInterceptor
Creates an XMLStreamWriter from the OutputStream on the Message.
SoapHandlerInterceptor [-->AbstractProtocolHandlerInterceptor -->
AbstractJAXWSHandlerInterceptor]
Invokes handle message
SoapOutInterceptor
Writes start element for soap:envelope and complete elements for
other header
blocks in the message. Adds start element for soap:body too.
LogicalHandlerOutInterceptor [--> AbstractJAXWSHandlerInterceptor]
Replaces XML Stream writer with StAX writer
WrapperOutInterceptor
BareOutInterceptor
SoapOutInterceptor$SoapOutEndingInterceptor
StaxOutInterceptor$StaxOutEndingInterceptor
MessageSenderInt$MessageSenderEnding
----------------------------------------------------------------------------
I guess that some of the information in the above list might be
incomplete/incorrect/missing. Please help me update the same so that it will
be helpful for others too :). Thanks!!
Regards,
Harbhanu
Re: Default Interceptor's functionality
Posted by Daniel Kulp <dk...@apache.org>.
Thanks for doing this. This is really cool.
I've went ahead and copied some of this to:
http://cwiki.apache.org/confluence/display/CXF20DOC/Interceptors
and filled in the gaps. Let me know if anything needs to be
clarified or expanded.
There's definitely a bunch more interceptors that could be added. If
ws-addressing or ws-rm or similar is enabled, more stuff is added.
That list covers the "normal" use cases though. Nicely done.
Thanks!
Dan
On May 12, 2008, at 8:16 AM, harbhanu wrote:
> Hi,
> As per the earlier mails what I learnt is that interceptor holds the
> core
> logic with regards to processing of messages. So, I have decided to
> compile
> the top level tasks performed by each of the predefined interceptors
> getting
> invoked during in/out/fault processing. I am not able to formulate
> the same
> for most of the interceptors, as am a bit new to this and the code
> also
> doesn't provide too descriptive documentation. I couldn't find much
> documentation on net too.
> Please point me to some appropriate resources. Thanks !!
> [Apologies incase I am being too demanding from the group]
>
> The information that I have till now...although it might have some
> errors...
> Following list contains interceptors for in/out message processing
> at the
> server side...
>
> Default Incoming interceptor chain (Server):
> AttachmentInInterceptor
> Constructs soap message with attachments from the MIME input stream
> StaxInInterceptor
> Creates an XMLStreamReader from the transport InputStream on the
> Message
> ReadHeadersInterceptor
> Adds information pertaining to different headers in Message header
> SoapActionInInterceptor
> Parses "soapaction" information, based on input message type i.e.
> SOAP 1.1 or 1.2
> MustUnderstandInterceptor
> Checks the MustUnderstand headers, its applicability and process it,
> if required
> SOAPHandlerInterceptor
> SOAP Handler as per JAX-WS
> LogicalHandlerInInterceptor
> Logical Handler as per JAX-WS
> CheckFaultInterceptor
> Checks for fault, if present aborts interceptor chain and invokes
> fault handler
> URIMappingInterceptor
> Can handle HTTP GET, extracts operation info and sets the same in
> the Message
> DocLiteralnInterceptor
> Extracts operation information from the message
> SoapHeaderInterceptor
> Perform databinding of the SOAP headers
> WrapperClassInInterceptor
> -
> SwAInInterceptor
> -
> HolderInInterceptor
> -
> ServiceInvokerInInterceptor
> -
>
> -------------------------------
> Default Outgoing chain stack (Server):
> HolderOutInterceptor
> -
> SwAOutInterceptor
> -
> WrapperClassOutInterceptor
> -
> SoapHeaderOutFilterInterceptor
> Removes inbound marked headers
> SoapActionOutInterceptor
> Sets the SOAP Action on the wrapped operation, based on message type
> i.e. SOAP 1.1 or 1.2
> Does it when, if (!(message ==
> message.getExchange().getInMessage()))
> Query: What does this condition means, when this interceptor itself
> is plugged on outgoing chain ?
> MessageSenderInterceptor
>
> SoapPreProtocolOutInterceptor
> This interceptor is responsible for setting up the SOAP version and
> header,
> so that this is available to any pre-protocol interceptors that
> require these to be available.
>
> AttachmentOutInterceptor
> -
>
> StaxOutInterceptor
> Creates an XMLStreamWriter from the OutputStream on the Message.
>
> SoapHandlerInterceptor [-->AbstractProtocolHandlerInterceptor -->
> AbstractJAXWSHandlerInterceptor]
> Invokes handle message
>
> SoapOutInterceptor
> Writes start element for soap:envelope and complete elements for
> other header
> blocks in the message. Adds start element for soap:body too.
>
> LogicalHandlerOutInterceptor [--> AbstractJAXWSHandlerInterceptor]
> Replaces XML Stream writer with StAX writer
>
> WrapperOutInterceptor
>
> BareOutInterceptor
>
> SoapOutInterceptor$SoapOutEndingInterceptor
>
> StaxOutInterceptor$StaxOutEndingInterceptor
>
> MessageSenderInt$MessageSenderEnding
> ----------------------------------------------------------------------------
>
> I guess that some of the information in the above list might be
> incomplete/incorrect/missing. Please help me update the same so that
> it will
> be helpful for others too :). Thanks!!
>
> Regards,
> Harbhanu
>
---
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog