Skip to main content

Apache CXF client : Log XML request and response in database

Sometimes we have a senerio in which we need to log the request and response in DB or some where else, 
in order to see what request is sent to web service and what response we get. 
Apache CXF API provides us the facility to achieve this via using Interceptor (LoggingOutInterceptor and LoggingInInterceptor),
by default these classes write the request and response in the System.out stream, 
Now if you want to store them to DB then you can't use this stream you must need data in some string variable , 
Therfore we need to change the write stream of Interceptor so that we can keep request and response in some string variable.

String wsdlURL= "http://localhost:8084/MytestApp/artworkService";

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();

 //Bind Service class
factory.setServiceClass(MyService.class);

//Bind WSDL      
factory.setAddress(wsdlURL);                            
 
//Change logging strean
Writer outResult = new StringWriter();
PrintWriter printOutWriter = new PrintWriter(outResult);
factory.getOutInterceptors().add(new LoggingOutInterceptor(printOutWriter));
        
Writer inResult = new StringWriter();
PrintWriter printInWriter = new PrintWriter(inResult);
factory.getInInterceptors().add(new LoggingInInterceptor(printInWriter));
 
MyService myService = (MyService) factory.create();

//Call Service
my.hello('Jaspreet Singh');                                
 
// Print Request and Response or you call your DB service for logging
System.out.println(inResult.toString());
System.out.println(outResult.toString());

Comments

Popular posts from this blog

Setup Jenkins in Tomcat Webserver

Jenkins is a software that allows continuous integration. Jenkins will be installed on a server where the central build will take place. System Requirements: 1. JDK 2. Tomcat Java installation : 1. Download the latest JDK from Oracle's site 2. CentOS look for the package jdk-7u17-linux-x64.rpm (64-bit architecture) or jdk-7u17-linux-i586.rpm (32-bit architecture) 3. Once you download the installation package, use the command rpm -ivh 4. Confirm you have the correct Java by running java -version Tomcat installation: 1. Download Apache Tomcat archive file from Apache Tomcat official download page. You can use below wget command to download it. cd /tmp wget http://www.us.apache.org/dist/tomcat/tomcat-7/v7.0.54/bin/apache-tomcat-7.0.54.tar.gz 2. After competed download extract archive file in /tmp directory and move to proper location as per your need. We are placing this under /usr/local directory. tar xzf apache-tomcat-7.0.54.tar.gz mv apache-t...

Encode from JavaScript and Decode at Java.

if you have a senerio like you want to send encoded parameter values from your web page  and decode them  at server side then this blog may be help you. JavaScript: Before submit the form I am encoding all the value entered by user so that it can not be read by humanly, for encoding the values I have written a method named  encodeBase64 <script> function encodeBase64(input){         var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";         input = escape(input);         var output = "";         var chr1, chr2, chr3 = "";         var enc1, enc2, enc3, enc4 = "";         var i = 0;              do {             chr1 = input.charCodeAt(i++);             chr2 = input.charCodeAt(i++);     ...

Apache and Tomcat Inegration in CentOS:

Apache  the most popular open source web server and Tomcat  the most popular open source application server for the Java application (JSP & Servlets). Benefits  to have a Apache Layer over the tomcat : Static Content – Apache serves static content better than Tomcat and supports better caching mechanisms. Availability – Apache allows load balancing and clustering of multiple Tomcat servers behind it, thus providing high availability. Security – Apache protects Tomcat through its built-in security features and through advanced third-party modules such as ModSecurity. Extensibility – Apache provides an abundance of modules for just about anything from URL rewriting (ModRewrite) to GeoIP services. With Apache you can use these modules to extend Tomcat's functionality. Java installation : 1 . download the latest JDK from  Oracle's site 2. CentOS look for the package jdk-7u17-linux-x64.rpm (64-bit architecture) or jdk-7u17-linux-i5...