在整合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
這樣啟動就可以調用成功了