java.lang.IllegalStateException: No instances available for localhost
原创
©著作权归作者所有:来自51CTO博客作者chushiyunaaa的原创作品,请联系作者获取转载授权,否则将追究法律责任
场景
spring中使用restTemplate远程访问的时候报这个错:
java.lang.IllegalStateException: No instances available for localhost
解决方案
不只一种解决方案,看哪种更适合自己。
ip地址写为服务名
这个报错一般会出现在使用了负载均衡,如:
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
当restTemplate调用ulr的时候,不要直接写域名
http://127.0.0.1:8080/user 而是要写服务名
http://yonghu-server/user
重新设置restTemplate
那么如果我不想用负载均衡呢?
也是可以的。
配置代码如下:
@Bean
@LoadBalanced
@Primary
public RestTemplate restTemplate(){
return new RestTemplate();
}
@Bean
public RestTemplate restTemplateCustom(){
return new RestTemplate();
}
引入代码如下:
@Autowired(required = false) // 这个可以解决idea报错
@Qualifier("restTemplateCustom") // 表示根据名称来找bean
private RestTemplate restTemplateCustom;
然后url使用ip,发现可以了。