記一次springboot配置redis項目啟動時的一個奇怪的錯誤

springboot配置redis項目啟動時的錯誤

在剛開始學redis時,我照著網上的教程,把redis和jedis整合到spring boot,整合完畢後,啟動項目總是失敗

總是爆出下面的錯誤

Correct the classpath of your application so that it contains a single, compatible version of org.springframework.data.repository.config.RepositoryConfigurationSource

***************************
APPLICATION FAILED TO START
***************************
 
Description:
 
An attempt was made to call the method org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute(Ljava/lang/String;)Ljava/lang/String; but it does not exist. Its class, org.springframework.data.repository.config.RepositoryConfigurationSource, is available from the following locations:
 
jar:file:/D:/m2/repository/org/springframework/data/spring-data-commons/2.0.10.RELEASE/spring-data-commons-2.0.10.RELEASE.jar!/org/springframework/data/repository/config/RepositoryConfigurationSource.class
 
It was loaded from the following location:
 
file:/D:/m2/repository/org/springframework/data/spring-data-commons/2.0.10.RELEASE/spring-data-commons-2.0.10.RELEASE.jar
 
Action:
 
Correct the classpath of your application so that it contains a single, compatible version of org.springframework.data.repository.config.RepositoryConfigurationSource
 
2018-11-22 13:03:51.398 INFO 2196 — [ main] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1a451d4d: startup date [Thu Nov 22 13:03:50 CST 2018]; root of context hierarchy
 
Process finished with exit code 1

然後我在網上找瞭很久,都沒有關於這個錯誤的解決辦法,偶然看到一篇博客,它在啟動項目時也出現瞭類型錯誤,也是jar包沖突,然後那個博主是通過改redis和jedis的版本號解決的,我也把版本號都改成和那個博主相同的,但啟動後還是出現相同的錯誤。

後來就想如果我把版本號都去掉,讓“spring-boot-starter-parent”自動為我們提供對應版本的jar包,這樣就可以避免自己指定版本號時,可能會有一些意想不到的沖突。於是我就把redis和jedis的版本號都去掉,果然項目就可以正常啟動瞭~~

What a strange error..

解決springboot項目啟動時redis報錯

出現ERR Client sent AUTH, but no password is set的問題

首先看下我springboot配置redis的部分如圖:

顯然上面配置瞭redis的啟動密碼為123456,

本地redis版本為3.0.1 在redis.windows.conf文件中requirepass內容也修改瞭密碼為123456,這裡說下,在去除requirepass前面的#號時一定註意還有一個空格要去除,不然會報錯:

Invalid argument during startup: unknown conf file parameter :  requirepass

這時,說明redis密碼與springboot的一致,接下來就是啟動redis再啟動springboot。

我員來的啟動方式就是進入到redis的安裝目錄,執行redis-server.exe,然後正常啟動。但是在啟動springboot後,調用redis時就報錯瞭,如圖:

一開始以為是我Pom.xml文件中引入的為2.9.0的redis依賴導致的版本不兼容,一直去找Redis的2.9.0的安裝包竟然網上沒有。浪費瞭半天時間。

後來才發現,這個報錯是告訴我沒有設置密碼。原因就是啟動時的方法錯誤。

請務必記住,啟動本地redis,如果設置瞭密碼記得帶上配置文件,啟動命令完整為:

redis-server.exe redis.windows.conf

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: