我有一个使用RestTemplate调用Rest服务B的Spring Boot Rest服务A。 Rest服务A的RestTemplate Bean如下所示,其中包含代码片段中的超时设置。
@Bean
RestTemplate getRestTemplate()
{
CloseableHttpClient closeableHttpClient = HttpClientBuilder.create().build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(closeableHttpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory);
requestFactory.setConnectTimeout( 2000 );
requestFactory.setReadTimeout( 2000 );
return restTemplate;
}
A 如下调用 B:
try{
restTemplate.postForEntity(urlSvcB, httpEntity, myObject.class);
}
catch (Exception ex){
.....some code here.....
}
当我将A和B都设置为调试模式,并在B中等待超过2秒的断点时,我期望A中的restTemplate调用检测到2秒的超时并立即进入异常块,但实际上并没有。我还在B中加入了thread.sleep(5000),但仍然无功而返。
请问我有做错什么导致我没有看到预期结果吗?