我们有一个Jersey REST服务,REST客户端使用Spring的REST模板,偶尔我们注意到客户端从REST服务获得了500个内部服务器错误:
error: 500 Internal Server Error; nested exception is org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
检查服务器的日志时我们发现了这个:
org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [ABC] in context with path [] threw exception [javax.ws.rs.ProcessingException: java.net.ConnectException: Connection timed out (Connection timed out)] with root cause
java.net.ConnectException: Connection timed out (Connection timed out)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
我不确定这里的问题是,服务器超时还是客户端超时?如果它是客户端问题,我可以添加重试,但如果它的服务器超时该怎么办?
答案 0 :(得分:1)
错误Connection timed out
:表示您的请求未在特定时间或时间段内收到回复。并且有很多理由让我们的响应机器人在时间段内超时:
1)可能是IP地址或端口不正确。
2)可能是IP地址已关闭。
3)您的服务器或主机所花费的时间比指定的超时时间更长或更长。
4)可能是服务器或主机的防火墙阻塞您正在使用的请求或端口。
5)互联网接入或本地网络问题或连接。
6)由于错误的网络配置或流量过载导致数据包丢失。
c)在主机或服务器上重载了太多请求。