今天做Dubbo項目的時候發現三個大坑
每次啓動都會報一個No Such Elements [array]的錯誤
是Dubbo2.5.3本身自帶的Spring包與現版本的Spring包版本不同出的問題,項目加載過程中,JVM會先去讀取Dubbo的jar包中的Spring包,而不是我們自己配置的Spring包。
解決方法:只需要到導入jar包時排除這個Spring包即可
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency>
消費端無法獲取到服務端提供的服務
在單獨啓動服務端,即service端後,在linux中的zookeeper看到服務是已經提供進去了,可是消費端一直無法獲取到,導致日誌一直包Bean自動注入失敗。在確定了虛擬機防火牆、配置文件的內容後,實在找不出什麼錯誤了。最坑的點來了,我把項目刪了,重寫一遍一模一樣的代碼,結果居然沒有報錯了。雖然沒有報錯,但是還是無法成功運行。做項目就是在一個接一個bug中度過,解bug的過程也能讓我們更加了解項目具體的底層運行流程,也算是因禍得福吧。
沒有報錯但是顯示servlet-api-2.4.jar - jar not loaded
百度了以下,去項目的文件夾下,刪除\WEB-INF\lib\下的servlet-api-2.4.jar即可,原因好像是jsp-api.jar和servlet-api.jar這兩個包tomcat的common\lib已經有了,重複的話會有衝突。