Hi Jeffrey,

maybe this can help you:
http://cxf.apache.org/javadoc/latest/org/apache/cxf/management/persistence/class-use/ExchangeDataDAO.html
CXf implements some classes and interfaces to save information into DDBB.
I write in my blog (spanish) about this:
http://pupri.mycloudnas.com/2013/03/21/graba-en-bbdd-la-entrada-y-salida-en-el-log-del-web-service-con-apache-cxf/
Google translator is good.

For interceptor to custom log, look for implementation of this class:
org.apache.cxf.interceptor.LoggingInInterceptor
org.apache.cxf.interceptor.LoggingOutInterceptor
Get request or response SOAP and write into log.



2014/1/17 Jeffrey Born <[email protected]>

> Well after a few days struggling with this I'm back to trying to capture
> the request object via the interceptor.  I've managed to add the
> interceptor to my code base and print the output stream.  I'm not
> knowledgeable with either Steams or Interceptors and would like to get a
> few questions answered to hopefully get this data logged to the DB.
>
> So first a little more background into what I'm trying to do: I don't want
> to log the request to the console or file or use log4j or Java's logger.
>  I'd like and object available to the web service client that can be logged
> to the a database in a larger transaction that will also include the
> response object.
>
> How do I gracefully expose a method or object to my main web service client
> that can use the data in the interceptor?
>
> And I believe I want to morph the OutputStream into a printable object?
>  Basically what is the best object to save to the Database and how do you
> get there from handleMessage in the interceptor?
>
> Thanks for the insights
>
>
> On Tue, Jan 14, 2014 at 1:17 PM, Jeffrey Born <[email protected]> wrote:
>
> > Ah, I missed that I should be adding the Client object via the
> > getClient(port) method.
> >
> > Thanks much for nudging me in the correct direction.
> >
> >
> > On Tue, Jan 14, 2014 at 12:35 PM, José Manuel Prieto <
> > [email protected]> wrote:
> >
> >>
> >>
> http://cxf.apache.org/docs/debugging-and-logging.html#DebuggingandLogging-LoggingMessages
> >>
> >> Client client = ClientProxy.getClient(port);
> >> client.getInInterceptors().add(new LoggingInInterceptor());
> >> client.getOutInterceptors().add(new LoggingOutInterceptor())
> >>
> >> In spring application context:
> >>     <cxf:bus>
> >>         <cxf:outInterceptors>
> >>             <ref bean="logOutbound"/>
> >>         </cxf:outInterceptors>
> >>     </cxf:bus>
> >>
> >> or:
> >>     <cxf:bus>
> >>        <cxf:features>
> >>           <cxf:logging />
> >>        </cxf:features>
> >>     </cxf:bus>
> >> http://cxf.apache.org/docs/bus-configuration.html
> >> http://cxf.apache.org/docs/configuration-of-the-bus.html
> >>
> >>
> http://www.ibm.com/developerworks/webservices/library/ws-apache-cxf-logging/index.html?ca=
> >>
> >> To create a custom log interceptor:
> >> http://cxf.apache.org/docs/interceptors.html
> >>
> >> ;)
> >> JMPrieto
> >>
> >>
> >>
> >> 2014/1/14 Jeffrey Born <[email protected]>
> >>
> >> > Hi all,
> >> >
> >> > I am having problems figuring out how to log the Request and Response
> >> > objects after successfully calling a .NET Web Service.  I created the
> >> > client using Eclipse Kepler that generated all the skeleton code for
> me.
> >> >  I'm using the 2.7.8 version of CXF and Java jdk1.7.0_45.
> >> >
> >> > I've read a lot about interceptors and believe that is the way to go,
> >> > however I can't figure out how to add an interceptor to what is
> >> generated.
> >> >  Everything object generated in the client does not allow an
> >> interceptor to
> >> > be added.  It's like everything got generated at too high of a level
> >> for me
> >> > to add interceptors.
> >> >
> >> > Not sure if this section of code will be useful to illustrate what I'm
> >> > seeing, but including in hopes that it is:
> >> >
> >> > PhoneBookManagement ss = new PhoneBookManagement(wsdlURL,
> SERVICE_NAME);
> >> > PhoneBookManagementSoap port = ss.getPhoneBookManagementSoap();
> >> >
> >> >
> com.pbsystems.yellow.wsdl.v1x0.PhoneBookVerificationByPhoneNumberRequest
> >> > _phoneBookVerificationByPhoneNumber_payload = new
> >> >
> >>
> com.pbsystems.yellow.wsdl.v1x0.PhoneBookVerificationByPhoneNumberRequest();
> >> >
> >> > I'd like to log the _phoneBookVerificationByPhoneNumber_payload SOAP
> >> > request to the DB at this point, and all I see are my getters and
> >> setters
> >> >
> >> > com.pbsystems.yellow.wsdl.v1x0.PhoneBookVerificationResponse
> >> > _phoneBookVerificationByPhoneNumber__return =
> >> >
> >> >
> >>
> port.phoneBookVerificationByPhoneNumber(_phoneBookVerificationByPhoneNumber_payload);
> >> >
> >> > After the call to the service I'd now like to log the
> >> > _phoneBookVerificationByPhoneNumber__return SOAP response object to
> the
> >> DB.
> >> >
> >> > Thanks for any help with this!
> >> >
> >>
> >
> >
>

Reply via email to