Si lloras por haber perdido el sol, las lágrimas no te dejarán ver las estrellas
R. Tagore

Web Services - Integrar los clientes en Spring

Ya sabemos cómo publicar un servicio web y cómo construir un cliente que consuma dicho servicio partiendo del fichero descriptor del contrato.

Ahora integraremos el cliente del servicio que hemos desarrollado en un proyecto Spring.

Proyecto holamundoWSClienteSpringPodríamos partir de un nuevo proyecto dinámico web, holamundoWSClienteSpring, añadir spring.jar y spring-mvc.jar, y configurar el web.xml para utilizar Spring. O podemos partir del proyecto que ya construimos basándonos en Spring, holamundo.

Debemos añadir las librerías que hemos utilizado en los anteriores proyectos :

  • axis.jar
  • commons-discovery.jar
  • jaxrpc.jar
  • saaj.jar
  • wsdl4j.jar

Y necesitamos el interfaz del servicio, que podemos construir nosotros u obtenerlo como ya se ha mostrado a partir del fichero WSDL. Es el mismo que ya hemos utilizado, es.lycka.holamundoWS.webservices.HolaMundo :

package es.lycka.holamundoWS.webservices;

import java.rmi.Remote;

import java.rmi.RemoteException;

public interface HolaMundo extends Remote {

      public String getSaludoLycka (String nombre) throws RemoteException;

} 

Vale, ahora vamos a implementar un fichero xml con el formato de Spring para definir un bean de nuestro servicio web, es.lycka.holamundoWS.webservices.clientes.spring.application-context-ws.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xsi:schemaLocation="http://www.springframework.org/schema/beans

      http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

      <bean id="holamundoService" class="org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean">

            <property name="wsdlDocumentUrl">

<value>http://localhost:8080/holamundoWS/services/HolaMundoImpl?WSDL</value>

            </property>

            <property name="namespaceUri">

<value>http://impl.webservices.holamundoWS.lycka.es</value>

            </property>

            <property name="serviceName">

                  <value>HolaMundoImplService</value>

            </property>

            <property name="portName">

                  <value>HolaMundoImpl</value>

            </property>

            <property name="serviceInterface">

<value>es.lycka.holamundoWS.webservices.HolaMundo</value>

            </property>

      </bean>

</beans>

Ya sólo nos queda construir el cliente, es.lycka.holamundoWS.clientes.spring.HolaMundoClienteSpring :

package es.lycka.holamundoWS.clientes.spring;

import java.rmi.RemoteException;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import es.lycka.holamundoWS.webservices.HolaMundo;

public class HolaMundoClienteSpring {

      public static void main(String[] args) {

            String resultado;

            try {

                  ApplicationContext contexto = new ClassPathXmlApplicationContext("/es/lycka/holamundoWS/clientes/spring/application-context-ws.xml");

                  HolaMundo servicio = (HolaMundo)contexto.getBean("holamundoService");

                  resultado = servicio.getSaludoLycka("Jero");

                  System.out.println("resultado = " +resultado);

            } catch (RemoteException e) {

                  e.printStackTrace();

            }

      }

} 

Ejecutamos esta clase (con el servidor iniciado donde esté desplegado el servicio, y con conectividad entre las máquinas cliente y servidor) y en la consola deberíamos de ver :

resultado: Lycka te saluda, Jero.

Ver también

2 Comentarios hasta el momento »

  1. Web Services - Primeros pasos con Eclipse - Generar Cliente Servicio Web | Lycka Bonita dijo

    2 de December del 2008 a las 9:28 am

    [...] Web Services - Integrar los clientes en Spring [...]

  2. Web Services - Primeros pasos con Eclipse - Generar Servicio Web | Lycka Bonita dijo

    2 de December del 2008 a las 9:29 am

    [...] Web Services - Integrar los clientes en Spring [...]

Comentarios RSS · TrackBack URI

Dejanos tu Comentario

Nombre: (Requerido)

E-Mail: (Requerido)

Sitio WEB:

Comentario: