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.xmlunDispatcherServletde 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.xmlla ubicación del archivo de definición de los beans de Spring:<context-param>
El contenido del archivo
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>applicationContext.xmlpodrí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.xmlun beanXFireExporterpara exportar un bean de Spring como Web service:<bean id="echo" class="org.codehaus.xfire.spring.remoting.XFireExporter">
Las dos primeras propiedades serán fijas en todos los Web services; la propiedad
<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>serviceBeancontendrá la referencia al bean de Spring (definido en el archivoapplicationContext.xml); y en la propiedadserviceClassse indicará el nombre de la interface del servicio. - Incluir en el archivo
xfire-servlet.xmlel siguienteimportde Spring:<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>
- Configurar un
HandlerMappingde Spring para dirigir las peticiones que llegan alDispatcherServlethacia 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>
http://server:port/application/EchoService?WSDL se puede obtener el WSDL (Web Services Description Language) correspondiente al Web service exportado.
Spain
Mexico
Colombia
Peru
Chile
Venezuela
Argentina
Ecuador
United States
Dominican Republic
Bolivia
Panama
El Salvador
Costa Rica
Paraguay
Guatemala
Puerto Rico
Uruguay
Nicaragua
United Kingdom
1 comentarios:
Perfecto, justo lo que andaba buscando, gracias.
3 de diciembre de 2008 06:39
Publicar un comentario en la entrada