背景:有2個微服務,一個是house服務,一個是pms服務,通過dubbo遠程調用。
現在在pms服務中的OrderService下新增了一個List<OrderChildVo> getOrderChildList(OrderParam param)方法,版本號升為2.0.3。
需要在house服務中調用pms中新加的這個getOrderChildList方法。
遇到的問題:報錯 Failed to invoke the method getOrderChildList ...... NullPointerException
排查過程:1.檢查house中對pms依賴的版本號是2.0.3
2.pms的生產者配置文件中,把OrderService發布出去了。house中的消費者配置文件中,也訂閱了OrderService。也都有配置Group。
3.house中用到那個服務的類中,用@Resource注解注入了OrderService
4.登錄dubbo客戶端,生產者中看到getOrderChildList這個方法已經正常提供服務了。消費者列表中house的訂閱也正常訂閱着getOrderChildList這個方法。還重啟了一下zookeeper
5.在house中調用了另外一個原來存在的舊方法OrderService.getOrderListByCondition(),發現不報錯,可以正常使用。通過這一步就可以確定,問題就出在getOrderChildList這個方法本身。
最終問題所在:最后發現其實是這個方法的返回值的那個實體類OrderChildVo沒有實現序列化接口Serializable導致的