Spring Web Services
Spring Web Services (Spring-WS) es un producto de Spring Framework para facilitar la creación de servicios web basados en el intercambio de documentos (document driven).
Spring-WS Se basa en servicios en los cuales primero se establece un contrato y luego se implementan (contract first), evitando atar al contrato como sucede en los casos en los cuales se genera el mismo a partir de las clases java.
Las principales características de SpringWS
Facilita aplicar las mejores practicas para la creación de servicios web Facilidad para distribuir los pedidos xml a través de diferentes tipos de mapeos Soporte para varias librerias de manejo de XML (DOM, SAX, StAX, JDOM, dom4j, XDOM) Soporte para mapeo de xml a objetos (Castor, JiBX, JAXB, XStream) Integración con Spring Framework
Dos ideas cuenta con un curso para exponer y consumir webservices con SpringWS. Haga click para ingresar.
Endpoint - Interceptores
Si usamos org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping para hacer el binding de los endpoints podemos agregar varios interceptores. Solo hay que definirlos dentro de la lista de interceptores que tiene como opción la clase.
Ejemplo:
<bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
<property name="mappings"> <props> <prop key="{http://dosideas.com/oc/schemas}OrdenDeCompraRequest">ordenDeCompraMarshallingEndPoint</prop> <prop key="{http://dosideas.com/oc/schemas}ConsultaPrecioRequest">consultaPrecioMessageEndpoint</prop> </props> </property> <property name="interceptors"> <list> <bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"/> <ref bean="validatingInterceptor"/> </list> </property>
</bean>