restTemplate请求,报 : No instances avaliable for ip地址

本文记录了一次在使用带有@LoadBalanced注解的restTemplate调用第三方接口时遇到的问题及解决方案。由于restTemplate默认尝试从注册中心查找服务,导致无法正确调用未注册的第三方接口。解决方法是创建一个不带负载均衡的restTemplate bean,并通过@Qualifier注解指定使用该bean进行调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

最后填坑结束!!!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漫长的~以后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值