"Contract first" or "code first?" Spring developers now have a choice with WSO2's release of Web Services Framework (WSF) for Spring 1.0. The new WSF/Spring 1.0 integrates the Apache Axis2 /Java Web services engine into the Spring Framework, giving Spring users full control from within the Spring configuration model.
The existing SpringWebServices (SWS) within Spring supports Web services through the contract-first model, by which users start with XML schema and WSDL definitions of their service. WSF/Spring 1.0 adds code-first support, by which users can start with existing Spring beans and offer them as Web services with a simple Spring configuration.
Paul Freemantle, co-founder and VP of sales at WSO2, the open-source SOA company located in Mountain View, Calif., and Sri Lanka, explains why this new feature is important in his personal blog:
So how does this compare to Spring Web Services? Well, the first thing is that SWS is mainly about contract-first. And, while contract first is an excellent practice, there are times when it is not appropriate - for example, it may be simply too much effort for a simple first web service. WSF/Spring supports the POJO programming model simply and effectively, and generates the WSDL automatically from the beans you expose. (WSF/Spring does also expose contract-first). The second reason is simply that some users want to use Axis2. Axis2 is a very full featured and interoperable toolkit that does support some extra standards not yet available in SpringWS such as WS-SecureConversation, WS-Trust, WS-Policy and WS-ReliableMessaging. Axis2 also takes a very different approach to enabling these standards using the module approach rather than direct wiring of handlers.
WSF/Spring 1.0 is released under Apache License 2.0 and is based on the open source Apache Axis2/Java Web services engine. Key features include:
WSF/Spring 1.0 is available for download today, and carries no software licensing or subscription fees. Support is available from the WSO2 site.