- 断点发现注入的服务是null。
- 消费端在本地,服务端在服务器;
- 注解@Reference方式注入服务;
总结思路:
- 服务启动顺序:先启动服务端,再启动消费端;(服务端一直在启动着,在dubbo也能看到服务,这个情况不符合)
- 注解加上路径:@Reference(version="1.0.0-SNAPSHOT",url="dubbo://192.168.124.254:20882"),(加上服务路径也还是不行)
- dubbo和springboot没有集成好,pom增加如下依赖:(不行)
springboot和dubbo集成所需的依赖如下:
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency> -
增加dubbo的配置文件,设置服务启动时扫描bean的先后顺序,消费端先扫描dubbo bean,然后再扫描 SpringBoot bean,服务端相反;在yml中配置了dubbo的包扫描
-
@Service注解导包用dubbo的包,但是提示过时,且也还是服务为null
用接口直接测试发现,不是找不到服务,是netty的原因;直接用get请求携带参数可以调用服务者接口,且不是nul;
最后在调用服务之前HTTP请求,以完成后续工作。
其实是关于spring生命周期的问题,需要注册进来的服务需要定义好一个静态的服务接收工具,比如ApplicationContext,提前接收需要注入的service。