四)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共享(只要是 ...
随机推荐
- RxJava 与观察者模式
RxJava到底是什么?让我们直接跳过官方那种晦涩的追求精确的定义,其实初学RxJava只要把握两点:观察者模式和异步,就基本可以熟练使用RxJava了. 异步在这里并不需要做太多的解释,因为在概念和 ...
- Haskell语言学习笔记(22)MaybeT
Monad Transformers Monad 转换器用于将两个不同的Monad合成为一个Monad.Monad 转换器本身也是一个 Monad. MaybeT MaybeT 这个 Monad 转换 ...
- hibernate中.常见的hql查询语句
hql是非常有意识的被设计为完全面向对象的查询 基本规则: 1.hql语法类似于sql,但它后面跟的不是表名和字段名,而是类名和属性名 2.hql大小写不敏感.但是设计java类名,包名,属性名时大小 ...
- cdoj842-天下归晋 【树状数组】
http://acm.uestc.edu.cn/#/problem/show/842 天下归晋 Time Limit: 3000/1000MS (Java/Others) Memory Lim ...
- Java的三种多线程
项目结构 继承Thread类 /* * Thread类实现了Runnable接口 */ public class MyThread extends Thread { @Override public ...
- python之面向对象之类变量和实例变量
#Auther Bob #--*--conding:utf-8 --*-- #这里的变量全部都是实例变量 class Role(object): def __init__(self,name,role ...
- 'WebElement' object is not iterable
checkbox.html源码: <html> <head> <meta http-equiv="content-type" content=&quo ...
- LFS(Linux From Scratch)学习
一.简介 LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式.它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( ra ...
- 201621123008 《Java程序设计》第一周学习总结
1. 本章学习总结 对于我们学计算机的学生而言,要想提高编程能力,只有多练习,把我们所学到的东西运用到实践中去,整天抱着书本冥思苦想而不动手到具体的环境中去试验是很难有所提升的.大一学C语言的时候平时 ...
- mysql水平分区
解决问题:单表数据量过大 ALTER TABLE boc_url_log PARTITION BY RANGE (ulid) ( PARTITION log_1 VALUES LESS THAN () ...