1.启动时提示找不到bean,无法注入对应的接口

Field baseService in xx.TestController required a bean of type 'xxxService' that could not be found.

可能原因:

    接口位置不在启动类的子包下,扫描不到这个@FeignClient.

    使用@SpringBootApplication(scanBasePackages = "xxx")是不够的

    在注解@EnableFeignClients上添加@EnableFeignClients(basePackages = "xx")


2.访问对应的地址,内部调用@FeignClient注解的方法时,报错

com.netflix.client.ClientException: Load balancer does not have available server for client:xxx

    xxx是生产者服务名称,通过eureka.instance.appname来指定的,在eureka界面也可以看见这个name,但是访问不到.

    这个xxx需要通过spring.application.name来指定才可以.

    eureka.instance.appname在eureka界面显示最前面Application列,并没有什么多大的意义,而spring.application.name显示在Status的url地址最后面,在@FeignClient(写在这里)

    有个博文还说这两个东西有优先级,乱说个大头鬼啊.

Spring Cloud一些异常

Spring Cloud一些异常

3.在使用zuul作为网关的时候,通过访问 http://zuul服务地址:端口/微服务名称/业务

这里的微服务名称是在eureka中的Application

例如访问    http://127.0.0.1:10000/base-show/xxxx


坑爹是如果配置了eureka.instance.appname,同时配置spring.application.name,且不和前面的相同.那么会抛异常

Spring Cloud一些异常

Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: base-show

Spring Cloud一些异常

但是访问http://127.0.0.1:10000/base/xxxx又是404错误!!!

Spring Cloud一些异常

只能是删掉eureka.instance.appname,这样可以通过

http://127.0.0.1:10000/base/xxxx来访问微服务

Spring Cloud一些异常



相关文章:

  • 2021-07-23
  • 2022-01-20
  • 2022-01-19
  • 2021-11-19
  • 2021-07-12
  • 2022-12-23
猜你喜欢
  • 2021-09-08
  • 2021-11-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-01
  • 2022-12-23
相关资源
相似解决方案