【问题】使用相同服务名创建多个Feign客户端报错问题


前言

在使用Feign开发新的功能时,因为创建了新类增加了新的功能,吭哧吭哧的把程序写完了,满心欢喜的想测试一下,但启动时报错了。。。


一、问题代码

现有功能代码,如下

@FeignClient("backend-service")
public interface PaymentServiceFeign extends PaymentService {
    @Override
    @RequestMapping(method = RequestMethod.GET, value = "/api/payment/getPaymentById")
    CommonResult<Payment> getPaymentById();
}

问题代码,如下

@FeignClient("backend-service")
public interface PaymenDownloadFeign extends PaymentService {
    @Override
    @RequestMapping(method = RequestMethod.GET, value = "/api/payment/downlaod")
    void download();
}

启动报错,如下图示:
在这里插入图片描述


二、解决步骤

1.问题分析

其实通过上边的错误提示,我们知道它是因为服务名相同导致bean注册失败了,所以想要让程序启动起来,把服务名改成不一样的就可以了,但是服务名是不能改的,改了后端就访问不了了,所以就需要改其他的属性。

2.处理流程

2.1 查询官网

在这里插入图片描述
大概意思就是,如果想要用相同的名字或者url创建多个feign客户端,并且指向同一服务器,需要用contextId属性区分一下。

2.2 改后的代码

contextId的值自定义就行

@FeignClient(value = "backend-service", contextId = "backend-service-1")
public interface PaymenDownloadFeign extends PaymentService {
    @Override
    @RequestMapping(method = RequestMethod.GET, value = "/api/payment/downlaod")
    void download();
}

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值