我想为我的 Web 应用程序使用的休息服务设置连接超时。我正在使用 Spring 的 RestTemplate 与我的服务交谈。我做了一些研究,发现并使用了下面的 xml(在我的应用程序 xml 中),我相信它是为了设置超时。我正在使用 Spring 3.0。
我在这里也看到了同样的问题Timeout configuration for spring webservices with RestTemplate但解决方案似乎不太干净,我更喜欢通过 Spring config 设置超时值
<bean id="RestOperations" class="org.springframework.web.client.RestTemplate">
<constructor-arg>
<bean class="org.springframework.http.client.CommonsClientHttpRequestFactory">
<property name="readTimeout" value="${restURL.connectionTimeout}" />
</bean>
</constructor-arg>
</bean>
似乎无论我将 readTimeout 设置为什么,我都会得到以下信息:
网线断开: 等待约20秒,报如下异常:
org.springframework.web.client.ResourceAccessException: I/O error: No route to host: connect; 嵌套异常是 java.net.NoRouteToHostException: No route to host: connect
网址不正确,因此休息服务返回 404: 等待大约 10 秒并报告以下异常:
org.springframework.web.client.HttpClientErrorException:404 未找到
我的要求需要更短的超时,所以我需要能够更改这些。关于我做错了什么的任何想法?
非常感谢。