Sunday, July 16, 2006

Debugging Web Services

Ever wondered how to debug web services?
Debugging web services has been misconstrued by the folks, atleast the people I have been talking to. It is a normal practice to just debug the back end of the WS, example the EJB or an helper class that makes a call to the DB, and claim that the WS is debugged. This, apparantly, doesnot debug the actual service. I decided to come up with a check list for debugging the WS and here it is:

1. The primary stuff, the WSDL should be accessible from the browser
2. Validate request and response bodies against their schema definitions
3. Validate the definitions for WS-I (Web service interoperability) compliance.

The second and third points are of concern. I had been using the TcpMon, that is shipped with Apache Axis so far to see the SOAP messages. This would require "tunneling". Hmmm.. something non-intrusive would be better. I had been looking for some nice tools that does the true debugging of WS. Here is a list of tools and their descriptions:

1. WSUnit - Unit Testing a WS
2. WebService Studio - Invoking the WS, it a .NET program. Given the endpoint, generates the proxies and invokes the methods
3. SOAPUI - A very nice tool with all the required features. It doesn;t limit to just debugging, but provides features to load test and functional test the WS. Really cool!

I installed the SOAPUI and the experience is very good. I strongly recommend it to all folks using WS and wondering how to debug.

1 comment:

Anonymous said...

Some free (Fiddler Web Debugger: http://www.fiddlertool.org) and commercial (HTTP Debugger Pro ($50): http://www.httpdebugger.com) tools are available on the market that allow to debug Web Services.