一、该问题的重现步骤是什么?
在bladeX项目里面调用方法SysCache.getTenant("4413");可以正常把tenant对象存到redis里面,也可以正常反序列化取出值,存到redis里面的数据格式如下图所示:
在BladeX-Biz项目的pom.xml文件里面引用blade-system-api依赖来调用SysCache.getTenant("4413");发现获取不到redis里面对应的值,会 自动远程调用blade-system方法来获取成功之后存到redis里面,把bladeX项目里面存的值给覆盖掉,变成这样就可以正常从缓存里获取到值,
但是在bladeX项目里面调用SysCache.getTenant("4413");就会出现反序列异常:
org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is 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.StreamCorruptedException: invalid stream header: 0BFA0724 at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.deserialize(JdkSerializationRedisSerializer.java:84) at org.springframework.data.redis.serializer.DefaultRedisElementReader.read(DefaultRedisElementReader.java:48) at org.springframework.data.redis.serializer.RedisSerializationContext$SerializationPair.read(RedisSerializationContext.java:226) at org.springframework.data.redis.cache.RedisCache.deserializeCacheValue(RedisCache.java:260) at org.springframework.data.redis.cache.RedisCache.lookup(RedisCache.java:94) at org.springframework.cache.support.AbstractValueAdaptingCache.get(AbstractValueAdaptingCache.java:58) at org.springblade.core.cache.utils.CacheUtil.get(CacheUtil.java:188) at org.springblade.core.cache.utils.CacheUtil.get(CacheUtil.java:168) at org.springblade.system.cache.SysCache.getTenant(SysCache.java:324) at org.springblade.article.wrapper.ArticleWrapper.entityVO(ArticleWrapper.java:63) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at org.springblade.article.wrapper.ArticleWrapper.articleListVO(ArticleWrapper.java:57) at org.springblade.article.wrapper.ArticleWrapper.articlePageVO(ArticleWrapper.java
二、你期待的结果是什么?实际看到的又是什么?
期望通过SysCache.getTenant("4413");缓存到redis里面的值可以正常在bladeX和Bladex-Biz项目正常获取到
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
2.6.0.RELEASE,在windows上面,redis版本redis:5.0.2-alpine
官方新品
- 热议问题
-
首页tab导航修改为面包屑导航
1
-
saber3构建发布环境无法访问后端接口
1
-
用户令牌不可用
2
-
框架支持谷歌,apple,insgram三方登录吗?有文档吗?
1
-
Saber3构建无法访问后端Boot服务
1
-
1.0版本物联网初始化数据库如何做到与2.0版本一样?
1
-
数据大屏部署成功后,点击查看模板报错
1
-
数据权限隔离的问题咨询
1
-
minioTemplate如何自定义存储路径
1
-
为什么upload组件不能正常回显文件名称
1
扫一扫访问 Blade技术社区 移动端