次のように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)
両方のタイムアウトを処理するにはどうすればよいですか?例外がスローされると思いますか?その場合、タイムアウトのみを具体的に処理するために、どの特定の例外をキャッチできますか。私は他の例外をさまざまな方法で扱っています。
RestTemplate
の場合、リクエストがタイムアウトになると、Springは ResourceAccessException をスローします。そのインスタンスの基になる例外はJava.net.SocketTimeoutException
「Read timed out」というメッセージが表示されます。