在整合spring cloud和dubbo的时候遇到一个问题,明明服务已经成功注册到nacos了,但调用的时候却找不到具体的Service接口,用telnet命令连到dubbo服务里ls了一下,确实没有对应的接口。一通查找,最后发现是dubbo的配置文件有问题,dubbo会根据配置的包名去扫描指定包下的类,再把打了@Service注解的接口注入到dubbo服务里。
比如服务提供者里,配置的扫描路径应该和api的包名保持一致,如下:
dubbo:
scan:
# 接口扫描路径
base-packages: com.cloxi.cloud.service
而服务消费者里,引用了dubbo服务(使用了@Reference注解)的类的包名也需要和扫描路径保持一致:
dubbo:
scan:
# 接口扫描路径
base-packages: com.cloxi.cloud.web
这样启动就可以调用成功了