You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Michael Berkowitz <mb...@gmail.com> on 2009/08/24 08:41:23 UTC

Looking for a good JAX-WS Logging Handler

Can anyone provide sample code for a JAX-WS SOAPHandler that knows how to
extract the operation and its arguments from the message?  I'm trying to
write a handler that logs all the requests with their arguments.

I've seen lots of examples of handlers that log the entire SOAP message, and
I've figured out myself that the operation is always
"context.getMessage().getSOAPBody().getFirstChild().getLocalName()", but a)
I'd like to think there's a cleaner way of getting the operation and b) it'd
be great to get the arguments as well.

TIA

 

 


Re: Looking for a good JAX-WS Logging Handler

Posted by Daniel Kulp <dk...@apache.org>.
On Mon August 24 2009 2:41:23 am Michael Berkowitz wrote:
> Can anyone provide sample code for a JAX-WS SOAPHandler that knows how to
> extract the operation and its arguments from the message?  I'm trying to
> write a handler that logs all the requests with their arguments.
>
> I've seen lots of examples of handlers that log the entire SOAP message,
> and I've figured out myself that the operation is always
> "context.getMessage().getSOAPBody().getFirstChild().getLocalName()", but a)
> I'd like to think there's a cleaner way of getting the operation and b)
> it'd be great to get the arguments as well.
 
There really isn't a way to do this from a JAX-WS handler without using a JAXB 
unmarshaller to unmarshal the contents of 
context.getMessage().getSOAPBody().getFirstChild() into an object yourself.  
Basically, the JAX-WS handlers run before we do any type of unmarshalling into 
the params that go into the message.

The only way to do this that is performant is to go with a CXF Interceptor 
that runs in the USER_LOGICAL phase.   The parameters are completely 
unmarshalled, the operation information has been determined, etc...


-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog