Spring版本升级后,feign报错

1.背景

老项目用的spring版本很低,爆出漏洞后,需要修复,于是升级spring版本,升级后项目启动报错java.lang.IllegalArgumentException: Either name or value can be specified, but not both…

2.解决

2.1 上网搜一下

从网上搜了一下,可以把feign注解里的name字段,改成serviceId,确实可以,但我这个老项目有n多feign调用的接口,我要是改,得改到毕业吧。。。

2.2 碰运气

反正就是版本冲突呗,那我就换个版本试试,于是我换了n个spring的版本,又换了n个feign的版本,擦,脸黑。。。

2.3 看代码吧

注意:先确认自己项目里用的到底是哪个版本的feign和spring,说明一下我的是netflix-feign 1.1.2.RELEASE

直接看报错的地方是这行
在这里插入图片描述
说明这个attributes的Map里value有值,而改spring版本之前起码是不会有值的,debug了一下改spring版本之后的代码,发现是获取注解上的信息方式变了,会把name的值给到value…

然后,我又换了几个spring版本发现取注解信息貌似都是这样,既然spring没改那肯定feign改了,要不然没法玩了,我把feign的版本升了一下果然好了。

说明:之前改版本号的思路是没问题的,但是pom里引的乱七八糟的,改的跟本没生效,确定是netflix-feign后改spring-cloud-starter-feign这个版本也不管用,再看代码是spring-cloud-netflix-core这个里面的,把这个升级1.2.0.RELEASE。启动成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值