Has anyone integrated CXF and JAMon (http://jamonapi.sourceforge.net/) 
successfully? I would like to track web service hits using JAMon but I don't 
know where to *centralize* the code. We are converting an existing XML over 
HTTP app to SOAP using CXF. In the current app we have a central point of 
control in our Servlet ( every call goes through this servlet ) so we trap it 
there and log the hit in JAMon. We know which request handlers are hit and how 
long it takes to respond. With SOAP and CXF the stack (CXFServlet) is the 
central point of control and I don't know where to trap the calls and the 
duration. I am pretty sure it will be in an *interceptor* but which one?

When I dump the inbound SOAP message I see the <Action> element in the log. But 
when I try get at this <Action> element programmatically I only get "".

<Action 
xmlns="http://www.w3.org/2005/08/addressing";>http://server.cxf.asi.cox.com/CustomerService/getCustomers</Action>

Any thought are greatly appreciated.

What I did:

I created a "StatisticsInterceptor" that extends SoapActionInInterceptor
In the handleMessage(SoapMessage message) method I tried to get a the 
SOAP_ACTION and I get and empty string including the quotes.

StatisticsInterceptor:75 - SOAP_ACTION [""]


         Map<String, List<String>> headers =
            CastUtils.cast(
               ( Map ) message.get( Message.PROTOCOL_HEADERS ) );

         List<String> sa =
             headers.get(SoapBindingConstants.SOAP_ACTION);

         for ( String s : sa )
         {
             logger.debug("SOAP_ACTION [" + s + "]");
         }



Jeffrey M. Constantin | Cox Communications Inc.
Data Product Services (DPS) | Architecture & Systems Integration (ASI)
Desk: 404-269-3111 | Mobile: 678.643.6528




Reply via email to