restTemplate 填坑记:
最近程序部署调试的时候, restTemplate 调用外部接口 ,一直报错; No instances avaliable for ip地址
后来分析了一下原因:
程序开始在启动类的时候 添加了
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
而我使用时,就是使用这个bean去调用第三方接口, 重点在这里, restTemplate加上负载均衡注解后,就会去注册中心寻找服务. 因为是第三方的服务,所以当然报找不到实例;
解决办法
重新注入一个restTemplate bean; 修改名称,然后获取这个restTemplate去调用第三方接口
@Bean(name="remoteRestTemplate")
public RestTemplate restTemplateRemote() {
return new RestTemplate();
}
protected Class configLaucherClass(){
return DezjManageBootstrap.class;
}
调用的类里面:
@Autowired
@Qualifier(value = "remoteRestTemplate")
private RestTemplate rest;
最后填坑结束!!!