Web services con Spring y XFire
XFire es un framework Java para desarrollo y consumo de Web services. Trabajando junto al framework Spring permite exportar los beans de Spring como Web services, es decir, permite publicar como Web service toda la lógica de negocio de una aplicación sin apenas esfuerzo.
Una vez que XFire (
xfire-all-1.2.6.jar
) y sus dependencias ya están en el classpath se han de seguir los siguientes pasos:- Configurar en el archivo
web.xml
unDispatcherServlet
de Spring para manejar las peticiones HTTP entrantes:
<servlet> <servlet-name>xfire</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>xfire</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
- Indicar en el archivo
web.xml
la ubicación del archivo de definición de los beans de Spring:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param>
El contenido del archivoapplicationContext.xml
podría ser el siguiente:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="echoBean" class="example.EchoImpl"/> </beans>
- Configurar en el archivo
xfire-servlet.xml
un beanXFireExporter
para exportar un bean de Spring como Web service:
<bean id="echo" class="org.codehaus.xfire.spring.remoting.XFireExporter"> <property name="serviceFactory"> <ref bean="xfire.serviceFactory"/> </property> <property name="xfire"> <ref bean="xfire"/> </property> <property name="serviceBean"> <ref bean="echoBean"/> </property> <property name="serviceClass"> <value>example.Echo</value> </property> </bean>
Las dos primeras propiedades serán fijas en todos los Web services; la propiedadserviceBean
contendrá la referencia al bean de Spring (definido en el archivoapplicationContext.xml
); y en la propiedadserviceClass
se indicará el nombre de la interface del servicio. - Incluir en el archivo
xfire-servlet.xml
el siguienteimport
de Spring:
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>
- Configurar un
HandlerMapping
de Spring para dirigir las peticiones que llegan alDispatcherServlet
hacia los Web services exportados con elXFireExporter
:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="urlMap"> <map> <entry key="/EchoService"><ref bean="echo"/></entry> </map> </property> </bean>
De esta forma, accediendo a una URL del tipo
http://server:port/application/EchoService?WSDL
se puede obtener el WSDL (Web Services Description Language) correspondiente al Web service exportado.
1 comentarios:
Perfecto, justo lo que andaba buscando, gracias.
3 de diciembre de 2008, 5:39
Publicar un comentario