redisTemplate根据键获取值时报错:java.io.EOFException: null;
说明:
我要获取的信息在redis中的存储方式是hash类型
原本代码:
@Autowired
public RedisTemplate redisTemplate;
@GetMapping("getDeviceInfo")
public void getDeviceInfo(){
`Object entries = redisTemplate.opsForHash().entries("data:last").get("259");``
}
执行后会报错:
Caused by: org.springframework.core.serializer.support.SerializationFailedException: Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?; nested exception is java.io.EOFException
at org.springframework.core.serializer.support.DeserializingConverter.convert(DeserializingConverter.java:78)
at org.springframework.core.serializer.support.DeserializingConverter.convert(DeserializingConverter.java:36)
at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.deserialize(JdkSerializationRedisSerializer.java:82)
... 105 common frames omitted
Caused by: java.io.EOFException: null
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2353)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2822)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:805)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:301)
at org.springframework.core.ConfigurableObjectInputStream.<init>(ConfigurableObjectInputStream.java:65)
at org.springframework.core.ConfigurableObjectInputStream.<init>(ConfigurableObjectInputStream.java:51)
at org.springframework.core.serializer.DefaultDeserializer.deserialize(DefaultDeserializer.java:70)
at org.springframework.core.serializer.support.DeserializingConverter.convert(DeserializingConverter.java:73)
... 107 common frames omitted
尝试了网上各种办法,说是序列化的问题,尝试修改序列化内容:
// // key序列化
redisTemplate.setKeySerializer(new StringRedisSerializer());
// //val实例化
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
发现还是报这个错误。
最后发现在其他的一个类里面也封装了RedisTemplate ,但是由于封装的方法不能够满足我现在的业务要求,需要重新使用RedisTemplate 。就导致使用了两个RedisTemplate ,此时只需要将@Autowired改为@Resource(name = “stringRedisTemplate”),重新启动即可成功。
1308

被折叠的 条评论
为什么被折叠?



