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.