If you need to quickly consume and/or publish WS-I compliant web services, GroovyWS can help you.
If you are online and using the latest groovy version, here is the no-brainer way to use GroovyWS:
Make sure to have the correct GroovyWS grape config file
If you need more control, see the GroovyWS installation notes.
GroovyWS comes with two sets of APIS that are briefly described below using a simple example.
When your service is using groovy beans on the server side, you may want to control the fields that are serialized. This is done using a small xml file located next to your script. A small example is demonstrating this:
When consuming a web service, you may also be using some complex types. Those types are automatically generated from the WSDL, compiled and made available via your classloader. The client API is providing you a method to easily instantiate such a complex object from its name. Obviously, knowing the class name can be difficult when using a complex web service and may require to study the contract (WSDL). In order to help the user, GroovyWS is logging the names of the classes generated on the fly.
The client side integrates seamlessly with Grails applications.
- Using WSClient in Grails
- Using the Grails XFire plugin and GroovyWS
- Using the Grails Axis2 plugin and GroovyWS
There exists a lot of public web services. We provide two examples that show how easy it is to use GroovyWS to tap on these resources.
More WSClient configuration is available if you need to use proxies, basic authentication and security related features.
- A nice article from Geertjan's blog with several examples: http://blogs.sun.com/geertjan/entry/groovy_web_service
- An article explaining the difference between the different WSDL styles http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/
- The build process is using gradle. In order to build the sources from svn, just run: in the directory containing the source tree.
- Feel free to contribute by testing, giving your feedback, reporting bugs and sending patches.