2016-03-05 27 views
9

Tôi đã khởi restTemplate của tôi như sau:Sử dụng tính năng restTemplate của sping với thời gian chờ, làm cách nào để phát hiện thời gian chờ?

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

và tôi gọi nó như vậy:

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

Làm thế nào để xử lý cả hai timeouts? Tôi cho rằng một ngoại lệ sẽ bị ném ra? Nếu vậy, ngoại lệ cụ thể nào tôi có thể bắt, để xử lý cụ thể thời gian chờ. Tôi đang xử lý các ngoại lệ khác theo nhiều cách khác nhau.

Trả lời

10

Trong trường hợp RestTemplate, khi yêu cầu hết hạn, Spring sẽ ném ResourceAccessException. Ngoại lệ ngầm định trong trường hợp đó sẽ là java.net.SocketTimeoutException với thông báo 'Đã hết thời gian chờ'.

Các vấn đề liên quan