web-dev-qa-db-ja.com

タイムアウト付きのspingのrestTemplateを使用して、タイムアウトを検出するにはどうすればよいですか?

次のように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)

両方のタイムアウトを処理するにはどうすればよいですか?例外がスローされると思いますか?その場合、タイムアウトのみを具体的に処理するために、どの特定の例外をキャッチできますか。私は他の例外をさまざまな方法で扱っています。

17
linuxdan

RestTemplateの場合、リクエストがタイムアウトになると、Springは ResourceAccessException をスローします。そのインスタンスの基になる例外はJava.net.SocketTimeoutException「Read timed out」というメッセージが表示されます。

28
Darshan Mehta