前言:java
今天接手了同事以前作的一個小項目,裏面涉及到了 FastDFS 的使用。可是當我在本地運行項目的時候,卻報了 Could not autowire No beans of 'FastDFS Client' type found 相關的錯誤。git
接下來就詳細描述一下 FastDFS 報錯的解決方法。github
啓動 Application 類報錯:spring
required a bean of type 'org.springframework.fasfdfs.server.FastDFSClient' that could not be found.微信
以下圖所示:根據報錯信息發現,並不缺乏 jar 包,報錯提示裏所須要的類也有,不知道爲何會報錯。maven
綜上所述,再結合同事能夠經過 idea 來正常運行,因此懷疑是 FastDFS 相關 jar 包可能存在依賴衝突。ide
**一、**首先將 Maven 倉庫中 FastDFS 相關 jar 包刪除,共兩個,分別是:fastdfs-client-java-1.27-SNAPSHOT.jar 和 spring-boot-starter-fastdfs-1.0-SNAPSHOT.jar ,其中後者依賴前者。spring-boot
**二、**因爲沒法從中央倉庫中下載 FastDFS 的上述 jar 包,因此須要手動構建源碼生成 jar 文件。下載 fastdfs-client-java 和 spring-boot-starter-fastdfs 源碼到本地,配置好源碼項目的 Maven 地址後,執行 mvn clean install ,執行成功後,對應的 Maven 倉庫中就自動有了上述兩個 jar 包。須要特別說明的是:須要先打 fastdfs-client-java 的 jar 包,由於 spring-boot-starter-fastdfs 項目打包依賴 fastdfs-client-java-1.27-SNAPSHOT.jar 。測試
**三、**採用 Invalidate and Restart 的方式來重啓 idea ,這樣可讓 idea 從新加載項目。大數據
**四、**再從新運行 FastDFS 項目,啓動成功!
關於 fastdfs-client-java 和 spring-boot-starter-fastdfs 的源碼程序我已經上傳到了百度雲,可私信本微信公衆號【大數據實戰演練】回覆 190917 獲取,或者本身在 github 等開源社區上找,均可以。
關於這個問題我進行了反覆測試,假如本身有 fastdfs-client-java-1.27-SNAPSHOT.jar 和 spring-boot-starter-fastdfs-1.0-SNAPSHOT.jar 包,採用
mvn install:install-file -Dfile="xxx.jar" -DgroupId=xxx -DartifactId=xxx -Dversion=xxx -Dpackaging=jar
的形式將本地 jar 包導入到 Maven 倉庫中。雖然能夠成功導入,但啓動項目依舊會報上述錯誤,因此最穩妥的方式仍是下載源碼並打包,經過這樣的方式將須要的 jar 包導入到 Maven 倉庫中。
**注意點:**執行 mvn test ,會先執行 mvn compile ;執行 mvn package ,會先執行 mvn compile 和 mvn test ;執行 mvn install ,會先執行 mvn package 。
本文來自: 微信公衆號【大數據實戰演練】。閱讀更多精彩好文,歡迎關注微信公衆號【大數據實戰演練】。