四)mybatis 二级缓存 ehcache 常见问题
1. java.io.NotSerializableException
94359 [EH_CACHE Async Replication Thread] ERROR n.s.e.d.jgroups.JGroupsCachePeer - Error serializing data, it will not be sent: [JGroupEventMessage [event=PUT, cacheName=cn.zno.smse.dao.PersonMapper, serializableKey=-1714939566:3462427898:cn.zno.smse.dao.PersonMapper.countByExample:0:2147483647:select count(*) from PERSON, element=[ key = -1714939566:3462427898:cn.zno.smse.dao.PersonMapper.countByExample:0:2147483647:select count(*) from PERSON, value=[3], version=1, hitCount=0, CreationTime = 1444192911449, LastAccessTime = 1444192911449 ]], JGroupEventMessage [event=PUT, cacheName=cn.zno.smse.dao.PersonMapper, serializableKey=215577894:-1204219406:cn.zno.smse.dao.PersonMapper.selectByExample:0:10:select
ID, NAME, AGE, BIRTHDAY, TYPE, SEX
from PERSON, element=[ key = 215577894:-1204219406:cn.zno.smse.dao.PersonMapper.selectByExample:0:10:select
ID, NAME, AGE, BIRTHDAY, TYPE, SEX
from PERSON, value=[Person [id=2025B6EA63ED514AE053433210AC0E08, name=小王八, age=1, birthday=1988-04-19 10:41:07, type=2, sex=null], Person [id=2039793AE2A558B5E053433210ACD4F6, name=大狗, age=11, birthday=2015-09-15 10:08:16, type=2, sex=1], Person [id=2050B7C3F8376DCBE053433210AC8375, name=小小, age=11, birthday=2015-09-23 13:59:30, type=1, sex=1]], version=1, hitCount=0, CreationTime = 1444192911543, LastAccessTime = 1444192911543 ]]]
java.io.NotSerializableException: cn.zno.smse.pojo.Person
at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeObject(Unknown Source) ~[na:1.7.0_45]
at java.util.ArrayList.writeObject(Unknown Source) ~[na:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source) ~[na:1.7.0_45]
at net.sf.ehcache.Element.writeObject(Element.java:835) ~[ehcache-core-2.6.11.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeObject(Unknown Source) ~[na:1.7.0_45]
at net.sf.ehcache.distribution.LegacyEventMessage.writeObject(LegacyEventMessage.java:117) ~[ehcache-core-2.6.11.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeObject(Unknown Source) ~[na:1.7.0_45]
at java.util.ArrayList.writeObject(Unknown Source) ~[na:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.7.0_45]
at java.io.ObjectOutputStream.writeObject(Unknown Source) ~[na:1.7.0_45]
at org.jgroups.util.Util.objectToByteBuffer(Util.java:490) ~[jgroups-3.1.0.Final.jar:3.1.0.Final]
at net.sf.ehcache.distribution.jgroups.JGroupsCachePeer.sendData(JGroupsCachePeer.java:201) [ehcache-jgroupsreplication-1.7.jar:na]
at net.sf.ehcache.distribution.jgroups.JGroupsCachePeer.flushQueue(JGroupsCachePeer.java:244) [ehcache-jgroupsreplication-1.7.jar:na]
at net.sf.ehcache.distribution.jgroups.JGroupsCachePeer.access$200(JGroupsCachePeer.java:48) [ehcache-jgroupsreplication-1.7.jar:na]
at net.sf.ehcache.distribution.jgroups.JGroupsCachePeer$AsyncTimerTask.run(JGroupsCachePeer.java:265) [ehcache-jgroupsreplication-1.7.jar:na]
at java.util.TimerThread.mainLoop(Unknown Source) [na:1.7.0_45]
at java.util.TimerThread.run(Unknown Source) [na:1.7.0_45]
解决办法:将java bean 实现序列化接口
请留意:element 的key值和value值!
四)mybatis 二级缓存 ehcache 常见问题的更多相关文章
- mybatis二级缓存应用及与ehcache整合
mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓存. 1.开启mybatis的二级缓存 在核心配 ...
- Springboot整合Ehcache 解决Mybatis二级缓存数据脏读 -详细
前面有写了一篇关于这个,但是这几天又改进了一点,就单独一篇在详细说明一下 配置 application.properties ,启用Ehcache # Ehcache缓存 spring.cache.t ...
- 深入了解MyBatis二级缓存
深入了解MyBatis二级缓存 标签: mybatis二级缓存 2015-03-30 08:57 41446人阅读 评论(13) 收藏 举报 分类: Mybatis(51) 版权声明:版权归博主所 ...
- MyBatis二级缓存配置
正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 Mybatis二级缓存是SessionFactory,如果两次查询基于同一个SessionFactory,那么就从二级缓存 ...
- mybatis二级缓存
二级缓存区域是根据mapper的namespace划分的,相同namespace的mapper查询数据放在同一个区域,如果使用mapper代理方法每个mapper的namespace都不同,此时可以理 ...
- 如何细粒度地控制你的MyBatis二级缓存(mybatis-enhanced-cache插件实现)
前几天网友chanfish 给我抛出了一个问题,笼统地讲就是如何能细粒度地控制MyBatis的二级缓存问题,酝酿了几天,觉得可以写个插件来实现这个这一功能.本文就是从问题入手,一步步分析现存的MyBa ...
- MyBatis 二级缓存全详解
目录 MyBatis 二级缓存介绍 二级缓存开启条件 探究二级缓存 二级缓存失效的条件 第一次SqlSession 未提交 更新对二级缓存影响 探究多表操作对二级缓存的影响 二级缓存源码解析 二级缓存 ...
- Spring Boot 入门(十):集成Redis哨兵模式,实现Mybatis二级缓存
本片文章续<Spring Boot 入门(九):集成Quartz定时任务>.本文主要基于redis实现了mybatis二级缓存.较redis缓存,mybaits自带缓存存在缺点(自行谷歌) ...
- Mybatis 二级缓存应用 (21)
[MyBatis 二级缓存] 概述:一级缓存作用域为同一个SqlSession对象,而二级缓存用来解决一级缓存不能夸会话共享,作用范围是namespace级,可以被多个SqlSession共享(只要是 ...
随机推荐
- Python之实例对象的增删改查
#实例对象的增删改查p1 = ChinesePeople('wangyue')#print (p1.__dict__) #查看实例对象的属性#print (p1.name)(p1.play_ball( ...
- mongodb基础学习6-用户管理
下面来说一下用户管理,前面对mongodb进行操作都无需用户名密码进行登陆,可以设置用户进行数据库的访问 添加用户:三个参数:用户名,密码,是否只读 开启权限验证 进行验证 修改密码 删除用户 用户角 ...
- 为什么要在linux命令前加上 ./
为什么要在linux命令前加上 ./ ? 简述 执行unix或linux中除了path系统变量外的目录下的命令都要加./. 修改用户的 .bash_profile,在 PATH一行最后加上 “:.” ...
- protocol_link
蔡燧林:1992—2000年教育部考试中心研究生数学命题组组长现在退休养老.要想办法弄到他编的书(ps:别问怎么弄到,我和我同学都能弄到,你怎么会不能弄到呢)李林:目前在导航独家授课,他能屡屡命中考研 ...
- 显示AVI的第一桢
procedure TForm1.Button1Click(Sender: TObject);begin Application.ProcessMessages; MediaPlayer1.Ope ...
- HTML 求阶乘之和
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- cmd 命令相关
计算相关进程数: tasklist|find /i "cmd.exe" 安装git的可以 tasklist|find /i "cmd.exe" | wc -l
- 在java中使用ffmpeg将amr格式的语音转为mp3格式
ffmpeg是一个非常强大的音视频处理工具,官网是:http://ffmpeg.org/. 由于ffmpeg在windows上和linux系统上的执行文件不一样(Windows上不需要安装ffmpeg ...
- 解读超轻量级DI容器-Guice与Spring框架的区别【转载】
依赖注入,DI(Dependency Injection),它的作用自然不必多说,提及DI容器,例如spring,picoContainer,EJB容器等等,近日,google诞生了更轻巧的DI容器… ...
- 12-matlab简单读excel
数据读入: clc; clear; AllNeedDate = xlsread('E:\a-建模\2018-5月校赛\2018年数学建模校内挑战赛题目\挑战赛A题\附件2:各城镇月度需求数据.xlsx ...