This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I'm french, so I apologize in advance if my english is not very "well formed" ;)
I wanted to share with you a simple tool that I have developed these days.
You know when you develope web services, you often faces problems with SOAP messages that are not valid according to the XSD schema declared in the original WSDL. For example, by default, some J2EE servers does not validate incoming SOAP requests before doing their stufs.
There are solutions to prevent these kind of problem, such as Sun's Datapower, which is a proxy that validates SOAP content. But, this kind of product is a bit expensive, and is not accessible for everybody.
The tool I developed acts as a Datapower (it does not replace it ;)), and it is called SOAP Proxy. For each web service interface you need to test, you just have to provide an URI mapping and the WSDL/XSD file that will be used to valide contents.
Then, instead of calling your web service with its target endpoint URL, you call it using the local URL of the proxy, and that's it It also has a "last results page", that shows you the lasts results of SOAP calls tansiting to it. It says for each message, request and response, the status (OK/KO), and if KO, you just have to click on the red button to know why the message validation failed. You can also display requests and responses contents.
What is actually validated ? SOAP Proxy does not validate the whole content of SOAP messages. It validates XML code inside <env:body>....</end:body> tags.
It also supports MTOM, but in a tricky way. Before validating XML content against the XSD schema, each <xop:include> declaration is replaced by a fake Binary64 String. But, the content that is send to the target endpoint (or sent back to the client) is still the original message with the <xop:include> declarations in it.
It would be great if some of you could test this tool, and give me some feebacks and bugs.
To run the tool, you need :
- a standard J2EE web server (such as tomcat, jboss, and so on) running under JDK 1.5 or upper.
- the '/var' directory on your system (or 'DISKNAME:/var' on windows) must be writable (it contains logs and configuration files).
How to install the tool ? SOAP Proxy is packaged as a standard war file. So once your server is started, just deploy the war file on it.
Soap Proxy is still a beta version, and you should not use it in production. Its purpose is only for testing and validating you web service interface !