Je voudrais définir les délais de connexion pour un service de repos utilisé par mon application Web. J'utilise le RestTemplate de Spring pour communiquer avec mon service. J'ai fait quelques recherches et j'ai trouvé et utilisé le xml ci-dessous (dans le xml de mon application) qui, je pense, est destiné à définir le timeout. J'utilise Spring 3.0.
J'ai également vu le même problème ici Configuration du délai d'attente pour les webservices de Spring avec RestTemplate mais les solutions ne semblent pas si nettoyer Je préfère définir les valeurs des délais d'attente via la configuration de Spring.
<bean id="RestOperations" class="org.springframework.web.client.RestTemplate">
<constructor-arg>
<bean class="org.springframework.http.client.CommonsClientHttpRequestFactory">
<property name="readTimeout" value="${restURL.connectionTimeout}" />
</bean>
</constructor-arg>
</bean>
Il semble que quel que soit le réglage du délai de lecture, j'obtienne le résultat suivant :
Le câble réseau est déconnecté : Il attend environ 20 secondes et signale l'exception suivante :
org.springframework.web.client.ResourceAccessExcep tion : Erreur d'E/S : No route to host : connect ; l'exception imbriquée est java.net.NoRouteToHostException : Pas de route vers l'hôte : connect
Url incorrecte donc 404 renvoyé par le service de repos : Il attend environ 10 secondes et signale l'exception suivante :
org.springframework.web.client.HttpClientErrorException : 404 Not Found
Comme mes besoins exigent des délais plus courts, je dois pouvoir les modifier. Avez-vous une idée de ce que je fais de mal ?
Merci beaucoup.