com.fasterxml.jackson.core.JsonParseException: Unexpected character (‘,‘ (code 44)): Expected space
阿新 • • 發佈:2021-01-31
今天在使用Redis做快取時出現瞭如題的Bug,其實是誤打誤撞出現的Bug,在Redis中儲存的型別都是字串,如下圖:
但是Redis的配置檔案是從網上拷貝過來的,使用的value反序列化是Jackson2JsonRedisSerializer型別,應該由於value字串中含有逗號字元導致Jackson2JsonRedisSerializer反序列化失敗,而對於我的專案把序列化型別改了就好,程式碼如下:
@Bean
public RedisTemplate<String, String> redisTemplate (RedisConnectionFactory factory) {
StringRedisTemplate template = new StringRedisTemplate(factory);
template.setValueSerializer(new StringRedisSerializer());
template.setKeySerializer(new StringRedisSerializer());
template.afterPropertiesSet();
return template;
}
還要注意的是在自動注入Bean的時候不要寫錯泛型,比如一開始我將自動注入寫成了:
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
就會出現:java.io.StreamCorruptedException: invalid stream header: 31353431等問題。