【笔记-错误】springCloud-alibaba-feign集成sentinel的启动报错

背景

随着Spring Cloud Alibaba 2.2.0.RELEASE的发布,终于可以使用最新的Spring Boot和Spring Cloud。

现在的环境

依赖 版本
Spring Boot 2.2.5.RELEASE
Spring Cloud Hoxton.SR7
Spring Cloud Alibaba 2.2.0.RELEASE

问题

已有工程升级了依赖版本之后,一启动就抛出以下错误:

原错误如下 启动时 创建reginClinet注入Bean失败

错误我剪切了 看到大致的错误即可:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'goodsFeignClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'top.yangbuyi.service.GoodsFeignClient': FactoryBean threw exception on object creation; nested exception is java.lang.AbstractMethodError: com.alibaba.cloud.sentinel.feign.SentinelContractHolder.parseAndValidateMetadata(Ljava/lang/Class;)Ljava/util/List;

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'top.yangbuyi.service.GoodsFeignClient': FactoryBean threw exception on object creation; nested exception is java.lang.AbstractMethodError: com.alibaba.cloud.sentinel.feign.SentinelContractHolder.parseAndValidateMetadata(Ljava/lang/Class;)Ljava/util/List;
	
Caused by: java.lang.AbstractMethodError: com.alibaba.cloud.sentinel.feign.SentinelContractHolder.parseAndValidateMetadata(Ljava/lang/Class;)Ljava/util/List;

解决

看了一下代码,问题的表现是从Sentinel抛出,本质是由于feign核心接口方法命名纠正拼写错误导致

Hoxton.SR7 中,fegin.context接口方法的定义为parseAndValidateMetadata

很明显是为了纠正拼写错误。

解决办法

把Hoxton.r7版本降低为 1

重新启动项目测试成功

其它问题

 如果出现PathVariable 错误 请在reginClient当中的参数 写明为是哪个参数的注解形式

posted @ 2020-08-17 10:06  杨不易呀  阅读(719)  评论(0编辑  收藏  举报