【发布时间】:2018-10-21 11:08:11
【问题描述】:
我有一个 springboot 休息服务 A 使用 restTemplate 调用休息服务 B。 Rest 服务 A 的 restTemplate bean 创建如下,超时设置如下面的代码 sn-p 所示。
@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 都置于 bebug 模式并在 B 的断点处等待超过 2 秒时,我除了在 A 中调用 restTemplate 来检测 2 秒的超时并立即进入异常块但是它没有。我还在 B 中放了一个 thread.sleep(5000) 但仍然是徒劳的。
我做错了什么,因为我没有看到预期的结果吗?
【问题讨论】:
-
您好,您知道这是什么原因吗?我也面临同样的情况
标签: spring spring-boot resttemplate