TCPMon Tutorial
TCPMon Tutorial explains step by step details of How to debugging web service using TCPMon.
What is TCPMon & How to Use TCPMon?
Apache TCPMon is an open-source tool / debugger for checking the data flowing through TCP network. TCPMon placed intermediate to a consumer and a server. The consumer is made to contact with TCPMon, and TCPMon further send the data to the server and will shows on in its Graphical User Interface(GUI).
Apache TCPMon utility is using for monitoring soap message
You can also configure, TCPMon with Apache AXIS in order to monitor the traffic
For example if you, created webservice is deployed using Apache CXF or Apache AXIS, you can able to monitor traffic on TCP connections by using this tool
Required Libraries
You need to download
Install / Configure TCPMon
Thinking that webservice is already up and is available on the port 8080 (My server is Tomcat, So Tomcat default port). If not, please check this article CXF Web Service Tutorial
Steps (Please see the following screen shot)
- Set Listen Port # as 8081 ( Assuming that port 8081 is free on your system )
- Leave Target Hostname as 127.0.0.1
- Set Target Port # as 8080
Now add the button, We get a new tab opened with as "port 8081". For monitoring the request/response we need to invoke the service. So just run the following client for simulating.
Simulate / Monitor TCPMon
import org.apache.cxf.ext.logging.LoggingInInterceptor;
import org.apache.cxf.ext.logging.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import com.student.ChangeStudentDetails;
import com.student.Student;
// Monitor SOAP Message using TCPMon
public class StudentClient {
public static void main(String args[]) throws Exception {
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
factoryBean.getInInterceptors().add(new LoggingInInterceptor());
factoryBean.getOutInterceptors().add(new LoggingOutInterceptor());
factoryBean.setServiceClass(ChangeStudentDetails.class);
factoryBean.setAddress("http://localhost:8081/CXFTutorial/services/ChangeStudent?wsdl");
ChangeStudentDetails client = (ChangeStudentDetails) factoryBean.create();
Student student = new Student();
student.setName("Rockey");
Student changeName = client.changeName(student);
System.out.println("Server response: " + changeName.getName());
}
}
Running TCPMon