CXF: Timeout en los clientes de web services

Cuando hacemos un cliente de web service con apache CXF, podemos fijar el tiempo de timeout que el cliente espera por la conexión y por la respuesta de la siguiente forma

// Creación del cliente web service de una de las muchas maneras posibles a partir de los wsdl en línea y una interfaz
// Calculadora.class.
URL wsdlURL = new URL("http://localhost:8080/ejemplo_cxf/Calculadora?wsdl");
QName SERVICE_NAME = new QName("http://cxf.ejemplos.chuidiang.com/", "CalculadoraImplService");
Service service = Service.create(wsdlURL, SERVICE_NAME);
Calculadora calculadora = service.getPort(Calculadora.class);
……

// Y el cambio del timeout de conexion y respuesta
org.apache.cxf.endpoint.Client client = ClientProxy .getClient(calculadora);

HTTPConduit http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(0);
httpClientPolicy.setReceiveTimeout(0);

http.setClient(httpClientPolicy);

 

El tiempo de timeout en milisegundos, 0 siginifica espera infinita. Los tiempos por defecto son 30 segundos para conexión y 1 minuto para respuesta.

 

Esta entrada ha sido publicada en CXF y etiquetada como , , , . Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.