最近學習Dubbo過程中,出現了一個錯誤。首先說下系統的結構:Spring+SpringMVC+Maven+Dubbo
本來系統可以正常跑起來,但是加上Dubbo的依賴以後,就報錯了。
dubbo依賴如下:
添加到pom文件後就發生了這樣一個錯誤,
一般NoSuchMethodError都是由於導入了不同版本的jar包造成的。比如說有個方法是showMoney,這個方法在money-1.1.jar裏面是沒有的,是後續版本(money-2.1.jar)裏面添加進去的。但是最終系統還是調用了1.1版本的showMoney方法,最終導致了noSuchMethodError方法。
(個人是這麼理解了,如有錯誤,還請指正)
這樣的話我們來看下引入dubbo後,伴隨加入了那些jar進來了,mvn dependency:tree
這裏我們可以看到,它默認會把spring的2.5.6版本引入,我係統本來是用的spring的3.1版本,所以最終造成了jar包衝突
解決辦法:去除默認引入的spring即可