错误信息:
2020-04-08 14:05:18.316 ERROR 19060 --- [nio-8090-exec-9] c.r.a.c.h.GlobalDefaultExceptionHandler : Could not read JSON: Unexpected token (VALUE_STRING), expected START_ARRAY: need JSON Array to contain As.WRAPPER_ARRAY type information for class com.alibaba.fastjson.JSON
错误分析:
redis存取值得时候引起得问题,存入得值可以在redis客户端查看到,也可以通过命令行获取,但是在java程序中会报上面得错误信息。
错误原因:
redis存值时序列化按字符串或者JSON进行序列化,解析时反序列化不是用的对应得序列化方式。
解决方案:
一:删除自定义的Redisconfig,使用springboot自带得Redisconfig 。
二:自定义的RedisUtils里面,将private RedisTemplate<String, Object> redisTemplate;改成private RedisTemplate<String, String> redisTemplate;
三:将redis的set和get的序列化方式都换成同一种方式,要么都是String,要么都是Json
public void set(String key, String value) {
redisTemplate.opsForValue().set(key, value);
} catch (Exception e) {
e.printStackTrace();
}
}