spring STS中如何增加Rest服务超时时间

Posted

技术标签:

【中文标题】spring STS中如何增加Rest服务超时时间【英文标题】:how to increase the Rest service timeout time in spring STS 【发布时间】:2017-12-10 00:42:48 【问题描述】:

我正在使用 spring STS 来开发具有嵌入式 tc 服务器的项目。我不知道是什么导致了这个问题,但我的休息服务总是超时 60 秒,即使我尝试在 @Transactional 中保持 timeout=100 并且我尝试将值放入 jpa.xml文件也。谁能告诉我如何增加超时时间?

【问题讨论】:

你是说需要为内嵌tomcat服务器的STS增加服务器超时时间? 哈哈,是的 pradeep 服务超时?那它一定是客户端上的read time out?或者您的JPA 查询是否在 60 秒后超时,但您仍然希望您的客户等待结果? 是的 Zilvinas ,JPA 查询在 60 秒时超时,即使我没有提到它 您好 Dhari,希望我的回答对您有所帮助。如果是,请接受答案,如果不是,请告诉我,以便我即兴发挥帮助您提供更好的解决方案。 【参考方案1】:

你好,达利,

请双击嵌入式tomcat服务器。您可以根据需要修改超时秒数。请查看提供的屏幕截图。

More over your question is not related to increase the service timeout instead it should be server timeout which was pretty fishy to understand.Kindly update your question as suggested.

【讨论】:

感谢您的回答 pradeep。我认为可能有任何关系 bw 服务器超时和休息服务超时,但不是。现在我的问题是,每当我调用我的休息服务时,它总是在 60 秒时超时,即使我将 timeout=100 保持在班级的顶部,你能告诉我该怎么做【参考方案2】:

如果您使用的是 RestTemplate,那么您应该使用以下代码来实现超时

@Bean
public RestTemplate restTemplate() 
    return new RestTemplate(clientHttpRequestFactory());


private ClientHttpRequestFactory clientHttpRequestFactory() 
    HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
    factory.setReadTimeout(2000);
    factory.setConnectTimeout(2000);
    return factory;

The x

ml 配置

<bean class="org.springframework.web.client.RestTemplate">
<constructor-arg>
    <bean class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory"
        p:readTimeout="2000"
        p:connectTimeout="2000" />
</constructor-arg>

参考: Spring Boot REST API - request timeout?

Timeout webservice call from client side

【讨论】:

以上是关于spring STS中如何增加Rest服务超时时间的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot REST API - 请求超时?

如何在 Spring Boot REST API 上设置超时?

spring boot 2.2中默认的rest api超时是啥

Spring cloud:熔断器-服务端降级

Jersey REST 服务抛出超时异常

使用 Windows Identity Foundation (STS) 的 WCF-Rest 安全性