Błąd tymczasowy Apache HttpClient: NoHttpResponseException

Mam usługę internetową, która akceptuje metodę POST z XML. Działa dobrze, a następnie przy jakiejś przypadkowej okazji nie komunikuje się z serwerem rzucającym wyjątek IOException z komunikatemThe target server failed to respond. Kolejne wywołania działają dobrze.

Zdarza się to głównie, gdy wykonuję kilka połączeń, a następnie zostawiam aplikację bezczynną na 10-15 minut. pierwsze wywołanie, które wykonuję, zwraca ten błąd.

Próbowałem kilku rzeczy ...

Skonfigurowałem procedurę ponawiania prób

<code>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);
</code>

ale ta próba nigdy nie została wywołana. (tak, używam odpowiedniej klauzuli instanceof). Podczas debugowania ta klasa nigdy nie jest wywoływana.

Próbowałem nawet skonfigurowaćHttpProtocolParams.setUseExpectContinue(httpClient.getParams(), false); ale bezużyteczny. Czy ktoś może zasugerować, co mogę teraz zrobić?

WAŻNY Oprócz zastanowienia się nad tym, dlaczego otrzymuję wyjątek, jedną z ważnych kwestii jest to, dlaczego nie działa tutaj retryhandler?

questionAnswers(5)

yourAnswerToTheQuestion