项目中使用SpringcloudAlibaba依赖版本为:
<!--spring cloud alibaba 2.1.0.RELEASE-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring cloud Hoxton.SR1-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
启动时报错:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'echoController': Unsatisfied dependency expressed through field 'echoService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.jmlee.hello.sentinel.feign.service.EchoService': 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;
出现这个原因 笔者找了相关资料也经过自己测试,发现是因为依赖版本里面存在着部分bug也可能是依赖版本不对应,吧cloudalibaba依赖版本升至 <version>2.2.0.RELEASE</version> 启动正常。
建议参照官方依赖版本对应关系说明 链接:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
部分截图:
这时又出现了一个问题使用@RestController注解返回给浏览器是json格式的数据变成了XML格式,于是我把cloudalibab依赖又升了一个小版本<version>2.2.1.RELEASE</version> 返回JSON格式正常