2016-03-05 1414 views
9

我初始化我restTemplate如下:使用sping的restTemplate超時,如何檢測超時?

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

,我調用它像這樣:

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

如何處理這兩個超時?我認爲會拋出異常?如果是的話,我可以捕捉哪些特定的異常,以便專門處理超時。我以不同的方式處理其他例外情況。

回答

10

如果是RestTemplate,當請求超時時,Spring會拋出ResourceAccessException。在這種情況下,潛在的例外情況是java.net.SocketTimeoutException,並顯示'Read timed out'。