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集成所需的依赖如下:


        io.dubbo.springboot
        spring-boot-starter-dubbo
        1.0.0

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

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

 

 

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

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

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

 

你可能感兴趣的:(dubbo+springboot,消费端调用服务端时,报空指针异常)