Apache HttpClient Intermédiaire D'Erreur: NoHttpResponseException

J'ai un webservice qui est d'accepter un POSTE méthode XML. Il travaille très bien à un certain aléatoire occasion, il ne parvient pas à communiquer au serveur jeter IOException avec message The target server failed to respond. Les appels suivants, beau travail.

Il arrive le plus souvent quand je fais des appels et ensuite laisser ma demande d'inactivité pendant 10-15 min. le premier appel que j'ai faites après que retourne cette erreur.

J'ai essayé quelques choses ...

J'ai installé la nouvelle tentative gestionnaire

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

mais cette nouvelle tentative ne l'ai jamais appelé. (oui, je suis en utilisant la droite instanceof clause). Lors du débogage de cette classe ne jamais être appelé.

J'ai même essayé de configurer HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), false); mais pas d'utilisation. Quelqu'un peut-il suggérer ce que je peux faire maintenant?

IMPORTANT
En plus de comprendre pourquoi je suis l'exception, l'une des principales préoccupations que j'ai est pourquoi ce n'est pas le retryhandler de travail ici?

  • Je ne pense pas que c'est quelque chose avec code client. Peut-être le serveur de destination est trop occupé dans le traitement des réponses?
  • J'ai essayé de violon pour bombarder le serveur de destination, mais il a bien fonctionné. J'ai même essayé d'exécuter la même procédure pour reproduire l'erreur à l'aide de fiddler, mais pas de chance!
  • Quel type de serveur web est en cours d'exécution du service, et pendant les 10-15 minutes d'attente est le service en demandant à d'autres requêtes, ou le service est-il inactif?
  • Tomcat. Pas de son d'une maquette de service atm et ce n'est pas de recevoir quelque chose d'autre, mais à mes appels.
InformationsquelleAutor Em Ae | 2012-05-11