Is there any way to inspect the contents of a web service consumer?

I am currently developing a web service consumer that places orders with another organization.

I have implemented many of the necessary classes after importing the WSDL, and can retrieve much of the information I require (inventory, product codes, etc.).

One of the calls to actually place an order, however, is simply rendering an error (#4747). There’s no description of the issue - It simply says that there has been an error.

When I made enquiries of the developers on the other end, they provided me with alot of .NET examples of how “everyone else” consumes the service.

I have evaluated all of the logic, and it certainly looks the same from this end. However, I’d like to inspect the XML that is generated by Notes/Domino when this particular call is made. That way, I can compare it to “good” XML they have provided to ascertain exactly where I could be going wrong.

Is there any way to capture the XML that is generated by my code so that I can inspect it?

Thanks very much to anyone that can provide some assistance here!

Cheers,

T.

Subject: More information…

I added some WS_Fault capture code to the agent, and found that the returned error was in fact:

There is an error in XML document -->(4,210). → Input string was not in a correct format.

This makes it even more important for me to determine exactly what XML is being generated by my consumer agent.

Has anyone got any ideas?

Cheers!

Subject: Try SoapUI

It will allow you to query a web service and see what is coming back based on what results.

Subject: Thanks Simon, but…

…I have already used SoapUI.

It’s fantastic when testing web service providers that I have developed, and I have used it quite a bit for that.

However, I am trying to interrogate the XML compiled by Notes/Domino when making a call to another provider by my custom web service consumer.

I’m not so sure that SoapUI can help in that situation (although I may be wrong?).

After posting my last response here, I kept playing until I determined exactly what the issue was (a missing parameter that wasn’t described in the documentation!) using breakpoints in the Lotusscript and sifting through the objects/values. However, it would have made my job about 10x faster if I had been able to diagnose the issue easier.

Thanks again for the reply - I may just look into SoapUI again and see if it could have helped.

Cheers!

T.

Subject: *The Web Service Explorer in Eclipse Web Tools has options to view the Soap Response

Subject: Try using a web debugging proxy

I recently evaluated Charles (http://www.charlesproxy.com/) as a debugging proxy. It catches all requests send/ received on the computer you’ve installed it. It has different options to filter requests and also allows for throttling (limiting the speed of your internet connection).

Mark

Subject: Another good tool for comms inspection…

Whilst trying to diagnose this issue, a colleague pointed me to an excellent tool for inspecting http communications… It’s called Fiddler (Download Fiddler Web Debugging Tool for Free by Telerik).

Unfortunately, I wasn’t able to get the tool to intercept Lotus Notes-generated traffic, but it’s a great tool that deserves mention anyway. Perhaps it may come in useful for someone else.

Subject: Last I know Fiddler only worked in explorer…

  • I use my old standby - Ethereal packet capture. Can’t hide from that, and SOAP is plain text. Even if it’s hideously malformed it’s trivial to read. Easy peasy. Just doesn’t work with SSL unless one installs the keys to facilitate decryption.

Hope this helps…

Subject: This might help.

http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=SOAP%20Catcher

Subject: Sweet! That worked perfectly!

Thanks very much Simon!

Man, the raw data takes some sifting, but the information is all there.

I guess that all I have to do is copy/paste the request (and/or response) into a separate XML file and open that up, and I should be good to go.

Thanks again!