2016-03-05 4 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をスローします。このインスタンスの下にある根底にある例外は、 'Read timed out'というメッセージのあるjava.net.SocketTimeoutExceptionになります。

関連する問題