spring cloud 升级步骤 | 问题简述

1.Feign调用报错The bean 'XXX.FeignClientSpecification', defined in null, could not be registered....的解决办法

Description:

The bean 'DATACENTER-ZUUL-GATEWAY.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

方案一:

升级Spring Boot 2.1.1Spring Cloud Greenwich.M3  版本后,在2个Feign接口类内定义相同的名字,  @FeignClient(name = 相同的名字 就会出现报错,在之前的版本不会提示报错,报错内容为The bean 'XXX.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled. 」

这是说Feign的注册,有同名的feign的名字重复注册。

解决办法就是将Feign调用,相同的name也就是跨服务调用,同一个服务的接口,不要分散的写在多个接口类中,而是放到同一个借口类中定义调用。

方案二:(亲测试可行)

多个接口上的@FeignClient(“相同服务名”)会报错,overriding is disabled

在application.yml中配置:

spring:
  main:
    allow-bean-definition-overriding: true

2. Failed to bind properties under 'spring.datasource.druid.driver' to java.sql.Driver:
    Property: spring.datasource.druid.driver
    Value: com.mysql.jdbc.Driver
    Origin: class path resource [application.yml]:5:20
    Reason: No converter found capable of converting from type [java.lang.String] to type [java.sql.Driver]

java.lang.TypeNotPresentException: Type org.springframework.jdbc.CannotGetJdbcConnectionException not present
	at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117)
	at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
	at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
	at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68)
	at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138)
	at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
	at sun.reflect.generics.repository.ClassRepository.getSuperclass(ClassRepository.java:90)
	at java.lang.Class.getGenericSuperclass(Class.java:777)
	at org.springframework.core.ResolvableType.getSuperType(ResolvableType.java:466)
	at org.springframework.core.ResolvableType.as(ResolvableType.java:455)
	at org.springframework.core.ResolvableType.forClass(ResolvableType.java:1037)
	at org.springframework.boot.diagnostics.AbstractFailureAnalyzer.getCauseType(AbstractFailureAnalyzer.java:58)
	at org.springframework.boot.diagnostics.AbstractFailureAnalyzer.analyze(AbstractFailureAnalyzer.java:34)
	at org.springframework.boot.diagnostics.FailureAnalyzers.analyze(FailureAnalyzers.java:114)
	at org.springframework.boot.diagnostics.FailureAnalyzers.reportException(FailureAnalyzers.java:107)
	at org.springframework.boot.SpringApplication.reportFailure(SpringApplication.java:848)
	at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:832)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
	at com.gla.datacenter.consumer.DataCenterConsumer.main(DataCenterConsumer.java:17)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: java.lang.ClassNotFoundException: org.springframework.jdbc.CannotGetJdbcConnectionException
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
	... 25 common frames omitted

解决方法 

修改application.yml文件将老版本的
spring:
  datasource:
  driver: com.mysql.jdbc.Driver
修改为
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.jdbc.Driver
 

发布了223 篇原创文章 · 获赞 145 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/zzhuan_1/article/details/84882756