如何处理服务调用的超时

时间:2017-06-20 04:07:06

标签: java web-services timeout

我有一个基于struts的应用程序,我在其中调用Restful Web Service。我的实际服务调用如下所示:

      RestTemplate restTemplate = new RestTemplate();
      ResponseEntity<String> response = restTemplate.exchange(testUrl, httpMethod, entity, String.class);

呼叫通过很好,但我想处理这个场景,如果万一我的服务停止,我想在1分钟内超时,而不是等待这么久。

1 个答案:

答案 0 :(得分:1)

您可以使用提供超时处理方法的Spring Rest模板:

对于连接超时:

RestTemplate restTemplate = new RestTemplate();
((SimpleClientHttpRequestFactory)restTemplate.getRequestFactory()).setConnectTimeout(2000);

对于读取超时:

((SimpleClientHttpRequestFactory)restTemplate.getRequestFactory()).setReadTimeout(2000);

有关详细信息,请访问文档页面: https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/client/SimpleClientHttpRequestFactory.html