Fijar un timeout usando WebServiceTemplate de Spring-WS

Una vez que sabemos cómo publicar un servicio web, ahora construiremos un cliente que consuma dicho servicio en un proyecto Spring-WS usando WebServiceTemplate, y le pondremos un timeout de 5 segundos por si el webservice está caído -partiendo del proyecto en eclipse que hacen aquí-.

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-3.0.xsd
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory" />

	<bean id="httpSender"
		class="org.springframework.ws.transport.http.CommonsHttpMessageSender">
		<property name="connectionTimeout" value="5000" />
		<property name="readTimeout" value="5000" />
	</bean>

	<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
		<constructor-arg ref="messageFactory" />
		<property name="defaultUri"
			value="http://localhost:8080/holamundoWS/services/HolaMundoImpl" />
		<property name="messageSender" ref="httpSender" />
	</bean>

</beans>

HolaMundoClienteSpring.java:

package es.lycka.holamundoWS.clientes.spring;

import java.io.StringReader;

import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.ws.client.core.WebServiceTemplate;

public class HolaMundoClienteSpring {
	private static final String MESSAGE =
        "<getSaludoLycka><nombre>kk</nombre></getSaludoLycka>";
	
	public static void main(String[] args) {
		ApplicationContext contexto = new ClassPathXmlApplicationContext(
				"/es/lycka/holamundoWS/clientes/spring/application-context-ws.xml");
		
		
		WebServiceTemplate template = (WebServiceTemplate)contexto.getBean("webServiceTemplate");              
		StreamSource source = new StreamSource(new StringReader(MESSAGE));
        StreamResult result = new StreamResult(System.out);
        template.sendSourceAndReceiveToResult(source, result);
        System.out.println("resultado = " + result);
	}

}

Implementado con Eclipse Helios y Apache Tomcat 7.

Anuncios

Etiquetas: , , , , , , , , , , , , , , , ,

2 comentarios to “Fijar un timeout usando WebServiceTemplate de Spring-WS”

  1. javier gonzalez Says:

    Viejo que version de springs ws utilizas ?

  2. viktor Says:

    Hola Javier, esta entrada ya es bastante antigua (mayo 1, 2011), se usó la spring-ws-2.0.1.RELEASE (junto a spring-framework-3.0.5.RELEASE), te recomiendo ver las últimas versiones y si sigue siendo compatible.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: