Tengo un servicio web que acepta un método POST con XML. Está funcionando bien y luego, en alguna ocasión aleatoria, no puede comunicarse con el servidor lanzando IOException con el mensaje The target server failed to respond
. Las siguientes llamadas funcionan bien.Apache HttpClient Error interino: NoHttpResponseException
Ocurre sobre todo cuando hago algunas llamadas y luego dejo mi aplicación inactiva durante 10-15 min. la primera llamada que hago después devuelve este error.
Probé par de cosas ...
puedo configurar el controlador de reintento como
HttpRequestRetryHandler retryHandler = new HttpRequestRetryHandler() {
public boolean retryRequest(IOException e, int retryCount, HttpContext httpCtx) {
if (retryCount >= 3){
Logger.warn(CALLER, "Maximum tries reached, exception would be thrown to outer block");
return false;
}
if (e instanceof org.apache.http.NoHttpResponseException){
Logger.warn(CALLER, "No response from server on "+retryCount+" call");
return true;
}
return false;
}
};
httpPost.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryHandler);
pero esto nunca llegó retey llamados. (sí, estoy usando la cláusula right instanceof). Mientras se depura esta clase, nunca se llama.
Incluso intenté configurar HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), false);
pero no uso. ¿Puede alguien sugerir qué puedo hacer ahora?
IMPORTANTE Aparte de determinar por qué estoy recibiendo excepción, uno de los más importante preocupación que tengo es por qué no se la retryhandler trabajando aquí?
no creo que es algo con código de cliente. ¿Puede ser que el servidor de destino esté demasiado ocupado manejando las respuestas? – kosa
Intenté fiddler para bombardear el servidor de destino, pero funcionó bien. Incluso traté de ejecutar los mismos pasos para reproducir el error utilizando el violín, ¡pero no tuve suerte! –
¿Qué tipo de servidor web está ejecutando el servicio, y durante la espera de 10-15 minutos el servicio recibe otras solicitudes o el servicio está inactivo? – Shawn