I am unable to capture local HTTP traffic when my Java client makes a SOAP request to my local Tomcat instance.
My current configuration is
- Tomcat instance – run on localhost:8080
- Local Java client – run from Windows cmd line
- Fiddler – run on localhost:8888
I used Axis2 wsdl2java
to create my client SOAP stub, and used my machines IP address when specifying the WSDL (hosted on Tomcat)
wsdl2java -uri http://192.168.0.5:8080/axis2/services/Version?wsdl -p sample.axisversion -d adb -s
So, the generated code has lines like this throughout:
public VersionStub(org.apache.axis2.context.ConfigurationContext configurationContext) throws org.apache.axis2.AxisFault {
this(configurationContext,"http://192.168.0.5:8080/axis2/services/Version.VersionHttpSoap12Endpoint/" );
}
My client app uses the generated stub and I set the Java proxy to Fiddler using the following code (which gets called before the SOAP stub is actually used):
System.getProperties().put("proxySet", "true");
System.getProperties().put("proxyHost", "localhost");
System.getProperties().put("proxyPort", "8888");
…but still I don't see any request or response traffic in Fiddler. What's missing?
Best Answer
Instead of
localhost
, try to useipv4.fiddler
, which makes sure your localhost traffic goes through fiddler. See also: http://www.fiddler2.com/Fiddler/Help/hookup.asp#Q-LocalTraffic