Interface21 announces Spring Web Services 1.0

What is Spring Web Services?


Spring Web Services is a product of the Spring community
focused on creating document-driven Web services. Spring Web Services aims to facilitate contract-first
SOAP service development, allowing for the creation of flexible web services using one of the many ways
to manipulate XML payloads.



Key Features



  • Makes the Best Practice an Easy Practice: Spring Web Services makes enforcing best practices
    easier. This includes practices such as the WS-I basic profile, Contract-First development, and having
    a loose coupling between contract and implementation.

  • Powerful mappings: You can distribute incoming XML request to any object, depending on message
    payload, SOAP Action header, or an XPath expression.

  • XML API support: Incoming XML messages can be handled in standard JAXP APIs such as DOM, SAX,
    and StAX, but also JDOM, dom4j, XOM, or even marshalling technologies.


  • Flexible XML Marshalling: The Object/XML Mapping module in the Spring Web Services distribution
    supports JAXB 1 and 2, Castor, XMLBeans, JiBX, and XStream. And because it is a separate module,
    you can use it in non-Web services code as well.

  • Reuses your Spring expertise: Spring-WS uses Spring application contexts for all configuration,
    which should help Spring developers get up-to-speed nice and quickly. Also, the architecture of
    Spring-WS resembles that of Spring-MVC.

  • Supports WS-Security: WS-Security allows you to sign SOAP messages, encrypt and decrypt them,
    or authenticate against them.

  • Integrates with Acegi Security: The WS-Security implementation of Spring Web Services provides
    integration with Acegi Security. This means you can use
    your existing Acegi configuration for your SOAP service as well.


  • Built by Maven: This assists you in effectively reusing the Spring Web Services artifacts
    in your own Maven-based projects.

  • Apache license. You can confidently use Spring-WS in your project.



Spring Web Services 1.0 facilitates the creation of contract-first, document-driven Web services, delivering the flexibility, productivity and ease of use benefits of the Spring Framework to the Web services environment.



Contract-first is where one writes (or generates) the WSDL for the service before writing the implementation, as opposed to the JAX-WS mechanism, where the Java code is written and the API generates the WSDL from that.



Contract-last has fragility problems (where the API might change over time, as the implementation changes), potential issues with cyclic graphs (where class A has a reference to class B, and class B has a reference to class A), conversion issues (the example given in the page referenced is that of a date, which Java represents as a time), performance (where the actual data marshaled might be more than you expect), and versioning (which is part of fragility, and Spring-WS addresses through mechanisms such as XSL to modify the request/response to match a requirement.)


Spring Web Services 1.0 also facilitates best practices such as the WS-I basic profile, and loose coupling between contract and implementation, allowing for the creation of flexible Web services using one of the many ways to manipulate XML payloads. By providing developers with a simpler approach to contract-first development, Spring Web Services 1.0 resolves many of the interoperability issues associated with typical Web services approaches.


Interface21 has a tutorial on using Spring-WS to write contract-first services, of course, that walks through the process.

Posted byEugene at 01:58

0 comments:

Post a Comment