脱离eureka使用ribbon发生的错误Servlet.service() for servlet [dispatcherServlet] in context

脱离eureka使用ribbon发生的错误Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed;

  在做微服务的时候,我们经常会用到eureka和robbit,来实现微服务之间的相互调用。但是对于有些老旧项目来说,可能在修改成eureka注册来实现服务发下可能会比较困难,或者说有些项目根本就没办法来做eureka,这个时候就可以脱离eureka来使用ribbon。
  笔者也是处在学习的阶段,自己搭建了一个简单的微服务项目,然后遇到了一些问题。
问题如下:

2020-12-21 13:01:19.562 ERROR 19684 --- [nio-8893-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: No instances available for microservice-porducer-user] with root cause

java.lang.IllegalStateException: No instances available for microservice-porducer-user

  然后百度发现其他人的解释是没有使用正确的springboot注解,但是我检查了一遍发现别人说的@Autowired,@RestController等的注解都正确使用了,但是也找到了一些原因,就是没有写负载均衡器
  我们都知道ribbon能够实现客户端的负载均衡,没有写这个就没办法实现ribbon的功能,所以就在启动类上加上了这个代码

	@Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
         return new RestTemplate();
    }

  主要是**@LoadBalanced**这个注解。
  然后重启代码,调用,发现还是报错,这下就犯了难了,查阅了各种资料,仔细地检查了代码,最后在配置文件上发下了问题,我的配置文件是这样的

server:
  port: 8893
spring:
  application:
    name: microservice-consumer-movie-without-eureka
microservice-porducer-user:
  ribbon:
    list-of-servers: localhost:8890

  猛地一看好像并没有什么问题,但是仔细看会发现,list-of-servers这句话好像有点不对,然后就将中划线的方式改成了驼峰式listOfServers,再重启项目,调用,就没问题了,至此问题解决。
  这个配合文件中关于写中划线式还是驼峰式,好像是跟springBoot,springCloud的版本有关,所以在确定自己的代码没有问题的情况下,修改一下配置文件的写法,可能就会解决掉问题,在此可以给大家一个解决问题的思路。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值