小技巧

java.lang.NoSuchMethodError: org.springframework.data.redis.core.RedisOperations.delete(Ljava/lang/Object;)V

這兩天我也被這個搞蒙了,總結了一下確實是版本問題,spring5(springboot2.x)只支持spring-session-core了。
最高版本的spring-session:1.3.5已經不再更新,而且支持到spring-session-data-redis:1.8。

官方文檔上寫了,spring-session-data-redis2.x後只能搭配spring-session-core2.x,關鍵我現在在寫的項目是前後端分離的,老版本的spring-session能實現session一致,用新的spring-session-core就會出現session不一致的問題,最後沒辦法,只能捨棄spring-session框架,改用原生session機制。

後面在想辦法優化成直連redis實現僞session或者token加密傳遞userid這種了

參考文章:https://segmentfault.com/q/1010000015825479

 

 

-----------------------------------------------------

request.getParameterMap() 紅線報錯 出現這種錯誤。

Error:(211, 133) java: 不兼容的類型: java.util.Map<java.lang.String,java.lang.String[]>無法轉換爲java.util.Map<java.lang.String,java.lang.Object>

查看是httpserverlet的版本不對,是tomcat自帶的HttpServletRequest

故解決方案:去除依賴,用默認的依賴或添加固定版本的依賴

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.5.RELEASE</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>

那個 

 

-----------------------------------------

 Error creating bean with name 'restTemplate' defined in class path resource [

RedisConnectionFactory factory 報錯

解決方案:

加一個配置類

//@Configuration
//public class Config {
//
//    @Bean
//    public RestTemplate restTemplate() {
//        return new RestTemplate();
//    }
//}

同時 spring-web開啓 爲正確的4.6版本,多加一個依賴

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