1. 程式人生 > 其它 >com.fasterxml.jackson.core.JsonParseException: Unexpected character (‘,‘ (code 44)): Expected space

com.fasterxml.jackson.core.JsonParseException: Unexpected character (‘,‘ (code 44)): Expected space

技術標籤:日常BUGRedisjavaredis快取

今天在使用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等問題。