1.报错原因:

在使用RestTemplate调用第三方API,在本地测试正常,但是部署到服务器上的时候就报:Dan,19:06 org.springframework.web.client.ResourceAccessException: I/O error on POST request for "XXX": No route to host (Host unreachable); nested exception is java.net.NoRouteToHostException: No route to host (Host unreachable),开始以为是没设置超时时间,通过网上的方法进行配置:

 SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
 requestFactory.setConnectTimeout(10*1000);
 requestFactory.setReadTimeout(10*1000);
 RestTemplate rest = new RestTemplate(requestFactory);	

部署上去还是报错

2.解决方案

最后将设置超时时间的接口换成HttpComponentsClientHttpRequestFactory顺利解决问题

 HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
 requestFactory.setConnectTimeout(10*1000);
 requestFactory.setReadTimeout(10*1000);
 RestTemplate rest = new RestTemplate(requestFactory);
Logo

一站式虚拟内容创作平台,激发创意,赋能创作,进入R空间,遇见同道,让优质作品闪耀发光。​

更多推荐