web-dev-qa-db-fra.com

En utilisant le restTemplate de sping avec un délai d'expiration, comment puis-je détecter un délai d'expiration?

J'ai initialisé mon restTemplate comme suit:

HttpClient httpClient = HttpClientBuilder.create().build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
requestFactory.setConnectTimeout(1000);
requestFactory.setReadTimeout(1000);
restTemplate = new RestTemplate(requestFactory);

et je l'appelle comme ça:

restTemplate.getForEntity(someString, String.class, SomeHashmapWithURLParameters)

Comment gérer les deux délais d'attente? Je suppose qu'une exception sera levée? Si oui, quelle exception spécifique puis-je intercepter, afin de gérer spécifiquement les délais d'expiration. Je gère d'autres exceptions de différentes manières.

17
linuxdan

Dans le cas de RestTemplate, lorsque la demande arrive à expiration, Spring lance ResourceAccessException . L'exception sous-jacente dans cette instance sera Java.net.SocketTimeoutException avec le message "Lecture expirée".

28
Darshan Mehta