springboot项目中使用spring-data-Redis对map序列化时报错
错误信息:
- java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
- at org.springframework.data.redis.serializer.StringRedisSerializer.serialize(StringRedisSerializer.java:35)
- at org.springframework.data.redis.core.AbstractOperations.rawHashValue(AbstractOperations.java:184)
- at org.springframework.data.redis.core.DefaultHashOperations.put(DefaultHashOperations.java:175)
- at com.xxx.service.impl.CacheServiceImpl.setCacheMap(CacheServiceImpl.java:670)
- at com.xxx.service.impl.CacheServiceImpl.setCacheMap(CacheServiceImpl.java:683)
- at com.xxx.ws.StatusSocketClient.onMessage(StatusSocketClient.java:104)
- at sun.reflect.GeneratedMethodAccessor410.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:45005)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at org.apache.tomcat.websocket.pojo.PojoMessageHandlerWholeBase.onMessage(PojoMessageHandlerWholeBase.java:80)
- at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:394)
- at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:495)
- at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:294)
- at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
- at org.apache.tomcat.websocket.WsFrameClient.processSocketRead(WsFrameClient.java:95)
- at org.apache.tomcat.websocket.WsFrameClient.resumeProcessing(WsFrameClient.java:209)
- at org.apache.tomcat.websocket.WsFrameClient.access$300(WsFrameClient.java:31)
- at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.doResumeProcessing(WsFrameClient.java:186)
- at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.completed(WsFrameClient.java:163)
- at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.completed(WsFrameClient.java:148)
- at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
- at sun.nio.ch.Invoker$2.run(Invoker.java:218)
- at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at java.lang.Thread.run(Thread.java:748)
找到redis相关配置:发现hash的键值序列化设置如下
- /*hash字符串序列化方法*/
- template.setHashKeySerializer(new StringRedisSerializer());
- template.setHashValueSerializer(new StringRedisSerializer());
修改后如下
- template.setHashValueSerializer(new JdkSerializationRedisSerializer());
参考来源:https://blog.csdn.net/qq_26525215/article/details/69367588
springboot项目中使用spring-data-Redis对map序列化时报错的更多相关文章
- 关于在项目中使用spring data redis与jedis的选择
项目中需要用到redis,主要用来作为缓存,redis的客户端有两种实现方式,一是可以直接调用jedis来实现,二是可以使用spring data redis,通过spring的封装来调用. 应该使用 ...
- 最近项目中使用Spring data jpa 踩过的坑
最近在做一个有关OA项目中使用spring data JPA 操作数据库,结果遇到了补个不可思议的麻烦.困惑了好久. 首先看一下问题吧,这就是当时测试“设置角色时,需要首先删除该用户已经拥有的角色时” ...
- Spring Data Solr创建动态域报错:org.springframework.data.solr.UncategorizedSolrException
今天在项目中使用Spring Data Solr导入动态域数据报错, 控制台打印错误信息如下 Exception in thread "main" org.springframew ...
- Spring Boot 中应用Spring data mongdb
摘要 本文主要简单介绍下如何在Spring Boot 项目中使用Spring data mongdb.没有深入探究,仅供入门参考. 文末有代码链接 准备 安装mongodb 需要连接mongodb,所 ...
- Spring-Boot项目中配置redis注解缓存
Spring-Boot项目中配置redis注解缓存 在pom中添加redis缓存支持依赖 <dependency> <groupId>org.springframework.b ...
- Spring Data Redis简介以及项目Demo,RedisTemplate和 Serializer详解
一.概念简介: Redis: Redis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写,详细的信息在Redis官网上面有,因为我自己通过google等各种渠道去学习Redis, ...
- Spring Data Redis—Pub/Sub(附Web项目源码)
一.发布和订阅机制 当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher). 而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE ...
- Spring Data Redis—Pub/Sub(附Web项目源码) (转)
一.发布和订阅机制 当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher). 而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE ...
- Spring Data Redis 2.x 中 RedisConfiguration 类的新编写方法
在 Spring Data Redis 1.x 的时候,我们可能会在项目中编写这样一个RedisConfig类: @Configuration @EnableCaching public class ...
随机推荐
- JSX 到 JS 的转换
在写react代码的时候,大部分同学应该都是写JSX.因为相比于写纯JavaScript.写JSX为我们去写组件,比写一些在JavaScript当中写类似于html结构的这种代码是要方便非常非常多的, ...
- windows(hexo)使用git时出现:warning: LF will be replaced by CRLF
hexo出现warning: LF will be replaced by CRLF git config --global core.autocrlf false //禁用自动转换
- Beta冲刺(1/7)——2019.5.22
所属课程 软件工程1916|W(福州大学) 作业要求 Beta冲刺(1/7)--2019.5.22 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪万里 ...
- IntelliJ IDEA 2019.2破解
IntelliJ IDEA 2019.2破解 我是参考这个激活的,使用的激活码的方式,需要在百度云盘下载压缩包 https://zhile.io/2018/08/25/jetbrains-licens ...
- python字符的表示格式
%% 百分号标记 #就是输出一个% %c 字符及其ASCII码%s 字符串%d 有符号整数(十进制)%u 无符号整数(十进制)%o 无符号整数(八进制)%x 无符号整数(十六进制)%X 无符号整数(十 ...
- crc计算工具推荐
比较好的crc计算工具,32位64位系统都可以用的.crc的校验方法也很多.推荐使用 下载地址
- A Class of Blind Source Extraction Method Using Second-Order Statistics
基于二阶统计量的盲源提取方法[1]. 文中提出了一系列基于二阶统计量的算法,包括离线BSE和在线BSE算法,可以提取平稳信号和非平稳信号.这些算法中,通过挖掘信号特征,提出了新的打分函数,以及一个无参 ...
- Mycat 全局系列号(转载)
概述 本篇文章介绍mycat怎样在分库分表的情况下保证主键的全局唯一方法,接下来就来分析三种方法各自的优缺点. 配置 文件方式获取 1.修改server配置文件 vim server.xml < ...
- H5如何实现关闭当前页面,跳转到新页面?
小程序有此功能的跳转方法. 那么H5如何实现该功能? 很简单. location.replace('new.html') 这个方法可以实现 关闭当前页面,跳转到新页面 的效果. 而 windo ...
- 查看.NET应用程序中的异常(上)
内存转储是查明托管.NET应用程序中异常的原因的一种极好的方法,特别是在生产应用程序中发生异常时.当您在无法使用Visual Studio的应用程序中跟踪异常时,cdb和sos.dll的使用技术就变成 ...