Author : Evan CABALLERO
e-mail : evan.caballero@gmail.com
Application name : SOAP Proxy
Version : 1.0-Beta-1
Tested with : Apache Tomcat 5.5 server with JDK 1.5 Update 22
GUI optimized for 1152*864 screen resolution and upper
/***************/
/* DESCRIPTION */
/***************/
SOAP Proxy is a simple J2EE webapp that acts as a web service proxy, validating XML content of incoming requests and outgoing responses.
It enables you to :
- Configure -> add your configuration dynamically from a simple page.
- Check -> display the last results of transiting SOAP messages.
How does it work ?
This proxy receives a SOAP request for a specified URI. According to its mapping configuration, it checks -i.e. validates - (or not) the content inside the <env:body> element.
If it is ok, it forwards the SOAP request to the target endpoint of the web service. If not, it send back a HTTP 400 error code to the client, indicating why it failed.
It does the same thing for the SOAP response received from the target endpoint.
Check screenshots to understand more.
When to use ?
This application is NOT for production use! You should use it for testing the web service interfaces that you are developing.
/****************/
/* INSTALLATION */
/****************/
SOAP proxy is a J2EE webapp, so you need a J2EE web server, running under JDK 1.5 or upper.
Use your serveur to deploy the war file. Once done, the application main page will be reachable at url : http://yourhost:port/soap-proxy
/!\ Warning /!\ : the /var directory on your system must be readable ! SOAP proxy will store all its stuffs in it (configuration, logs, etc ...)
How to upload a new configuration ?
- once you reached the main page, click the "New mapping configuration" button
- you are redirected to an upload form
- fill-in that form as follows :
- Proxy URI : enter here a relative URI, used by the proxy to route the SOAP messages. for example : /my/service/1.0
- Target endpoint URL : enter here the full URL to the target endpoint of the SOAP web service. for example : http://localhost:8080/webservices/MyService/Soap
- Schema file : here you must choose the wsdl file associated to your web service, or a xsd schema file if your wsdl is splitted in multiple files.
* if no schema file is specified, the proxy will let all the SOAP messages transiting through it, without validating anything.
- click the upload button, and that's it ;)
- repeat this operation for each web service you want to check.
The GUI of the application is very simple and minimalist, so I let you discover all the features. I'll take time to write a UserManual in future versions ;)
/******************
/* CUSTOMISATION */
/*****************/
Change the default directory of the proxy on your system :
- by default, the webapp uses /var/soap-proxy for its stuffs.
- to change this, open the web.xml file of the application (WEB-INF/web.xml), and look at the init params of the MappingConfigurationServlet.
- remove the comments, and put whatever path you want in the <param-value> tag.
Change the logs directory of the proxy on your system :
- by default, the webapp uses /var/soap-proxy/logs/soap-proxy.log as the log file.
- to change this, open de log4j.properties files of the application (WEB-INF/classes/log4j.properties), and change the path of the appender.
- you can also customise logs as you want.
Change the size of the last results table :
- by default, the webapp keeps the last 50 results of transiting messages.
- to change this, open the web.xml file of the application (WEB-INF/web.xml), and look at the init params of the ResultsServlet.
- change the content of the <param-value> tag.
/****************/
/* Last changes */
/****************/
- Beta 1 r14:
* added response times charts to results page
- Beta 1 r13:
* added clear button on results page, to clear all results
- Beta 1 r12:
* fixed path bug when using custom configuration path in web.xml file
- Beta 1 r11:
* corrected MTOM detection pattern (<xop:include>)
* added server response time
- Beta 1 r9:
* now supports ?wsdl calls
- Beta 1 r8:
* added response time in results table
- Beta 1 r7:
* corrected regexp for removing xop:include tags.
* added stuff that removes all useless <documentation> tags from XSD, avoiding encoding problems.