dubbo-spring-boot的auto-configure示例報Not found exported service的解決辦法
- 2019 年 10 月 6 日
- 筆記
本示例基於dubbo-spring-boot-project 2.7.3版本,可能會根據新版的發布而過時,閱讀時請注意。
關於dubbo在spring-boot中該如何使用,網上有很多例子,但因為時間跨度太久,很多例子已經過時了,一切還是要以官方的例子為準。
在github上搜索dubbo和spring-boot整合的項目的話,可能會找到下面兩個,分別是
第一個項目,已經歸檔了(archived),不再更新,所以我們要以第二個項目為準,千萬別搞錯了。
打開第二個項目的主頁,就開始瀏覽README中的Getting Started章節。 這個章節給我們展示了一個無註冊中心(dubbo.registry.address=N/A)的例子。
但是它卻跑不起來,消費者啟動後無法找到service provider,報Not found exported service的錯誤。
解決辦法如下:
需要在消費者Reference服務提供者時,url里指明version。其實version已經指明了,但不知為何還要在url里再次指定。
// @Reference(version = "1.0.0", url = "dubbo://127.0.0.1:12345") @Reference(version = "1.0.0", url = "dubbo://127.0.0.1:12345?version=1.0.0") private DemoService demoService;
另外,Getting Started中的pom依賴也比較簡略,省略了spring-boot原本需要的依賴,您可以參考我這個修復版里pom中的依賴。
源碼地址:https://github.com/kongxiangxin/dubbo-spring-boot-samples