奇怪的bug。Dubbo調用其他的服務出現奇怪bug

        最近用Dubbo調用其他服務出了一個奇怪的bug,當時看了半天也沒有想通是怎麼出來的。。後來解決的時候感覺這個bug非常的有趣,就記錄一下。

        這個bug是這樣的

        這個是調用方,這裏的日誌報的錯是類型轉換異常,一直說不能將一個Integer的值轉換爲Dto對象,我就很奇怪,這裏調用的是我的shop方的一個服務,返回的就是這個Dto對象,怎麼會說拿到的是一個Integer值呢?所以我就去shop去看了下這個方式本體,想確認下是這個問題本身是不是出了什麼問題。

但發現這個方法 不管返回的是不是有值,都不應該返回一個Integer對象的啊。

然後Debug跑了半天,最後才發現是我把自己給坑了。。。原來是我給這個方法添加日誌打印的時候的不小心把我的mapper對象的注入@Autowired的關鍵字刪除了。。而代碼也沒有報錯,所以我就沒注意。。然後shop這邊就一直在報空指針的異常。。。

所以這裏就直接進入了catch裏面,然後將我返回的方便查找異常的入參  參數activityId作爲結果返回去了。。所以調用方那邊纔會一直報那個Integer不能轉換爲Dto對象的異常。。那是因爲這個方法進入catch的話,就會將這個方法的入參作爲結果返回的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章