org.springframework.data.redis.serializer.SerializationException

Ris*_*ran 2 stream jedis spring-data-redis

我有一个从 redis 读取数据的应用程序。我得到以下异常堆栈

org.springframework.data.redis.serializer.SerializationException:无法反序列化;嵌套异常是 org.springframework.core.serializer.support.SerializationFailedException:无法反序列化有效负载。字节数组是 DefaultDeserializer 相应序列化的结果吗?嵌套异常是 java.io.StreamCorruptedException: invalid stream header: 7B226C65 at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.deserialize(JdkSerializationRedisSerializer.java:41) ~[spring-data-redis-1.4.2.RELEASE.jar :1.4.2.RELEASE] 在 org.springframework.data.redis.core.AbstractOperations.deserializeHashValue(AbstractOperations.java:296) ~[spring-data-redis-1.4.2.RELEASE.jar:1.4.2.RELEASE]在 org.springframework.data.redis.core.AbstractOperations.deserializeHashMap(AbstractOperations.java: invokeListener(DefaultMessageListenerContainer.java:1150) [spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE] 在 org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1142) [spring -jms-4.2.4.RELEASE.jar:4.2.4.RELEASE] 在 org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1039) [spring-jms-4.2.4.RELEASE.jar :4.2.4.RELEASE] 在 java.lang.Thread.run(Thread.java:745) [?:1.8.0_74] 引起:org.springframework.core.serializer.support.SerializationFailedException:无法反序列化有效负载。字节数组是 DefaultDeserializer 相应序列化的结果吗?嵌套异常是 java.io.StreamCorruptedException: invalid stream header:

我也尝试在其他论坛上搜索解决方案,但没有看到任何解决方案。下面是我的代码块

String receivedJSON = (String) redisTemplate.opsForHash().get(redisKey, hashKey);
Run Code Online (Sandbox Code Playgroud)

如果有人找到了任何解决方案甚至遇到了这个问题,请回复。

Ris*_*ran 7

我得到了一个解决方案。问题是 hashValue 应该使用字符串序列化器进行序列化。将默认序列化程序设置为字符串序列化程序后,我能够找到解决方案并完成我的要求。

<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
        p:connection-factory-ref="redisConnectionFactory">
        <property name="defaultSerializer" ref="stringSerializer" />
    </bean>

    <bean id="stringSerializer"
        class="org.springframework.data.redis.serializer.StringRedisSerializer" />
Run Code Online (Sandbox Code Playgroud)