dubbo+springboot,消费端调用服务端时,报空指针异常

  1. 断点发现注入的服务是null。
  2. 消费端在本地,服务端在服务器;
  3. 注解@Reference方式注入服务;

总结思路:

  1. 服务启动顺序:先启动服务端,再启动消费端;(服务端一直在启动着,在dubbo也能看到服务,这个情况不符合)
  2. 注解加上路径:@Reference(version="1.0.0-SNAPSHOT",url="dubbo://192.168.124.254:20882"),(加上服务路径也还是不行)
  3. dubbo和springboot没有集成好,pom增加如下依赖:(不行)

    springboot和dubbo集成所需的依赖如下:

    <dependency>
        <groupId>io.dubbo.springboot</groupId>
        <artifactId>spring-boot-starter-dubbo</artifactId>
        <version>1.0.0</version>
    </dependency>

  4. 增加dubbo的配置文件,设置服务启动时扫描bean的先后顺序,消费端先扫描dubbo bean,然后再扫描  SpringBoot bean,服务端相反;在yml中配置了dubbo的包扫描

  5. @Service注解导包用dubbo的包,但是提示过时,且也还是服务为null

 

 

用接口直接测试发现,不是找不到服务,是netty的原因;直接用get请求携带参数可以调用服务者接口,且不是nul;

最后在调用服务之前HTTP请求,以完成后续工作。

其实是关于spring生命周期的问题,需要注册进来的服务需要定义好一个静态的服务接收工具,比如ApplicationContext,提前接收需要注入的service。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值