四)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共享(只要是 ...
随机推荐
- H5特性回顾
canvas 绘画, video 媒介回放 audio元素 对本地离线存储的更好支持, 新的特殊内容 - 元素 比如 article,footer,header,nav,section, 新的表单控件 ...
- 趣味编程:FizzBuzz(Kotlin版)
fun toFizzBuzzIf(n: Int) = if (n % 3 == 0 && n % 5 == 0) "FizzBuzz" else if (n % 3 ...
- Linux删除文件名中包含“-”的文件
背景: 练习用shell的一些特殊符号,输出了一个 cat test.txt > -n,结果创建了一个叫做“-n”的文件 问题: 使用rm -f -n删除不了“-n"文件 解决 ...
- C语言实现24点程序
一.简介 本程序的思想和算法来自于C语言教材后的实训项目,程序通过用户输入四个整数计算出能够通过加减乘除得到数字24的所有表达式,程序的设计有别于一般通过穷举实现的方式,效率得到提高.算法介绍如下: ...
- HashCode的理解
一.hashcode是什么 要理解hashcode首先要理解hash表这个概念 1. 哈希表 hash表也称散列表(Hash table),是根据关键码值(Key value)而直接进行访问的数据结构 ...
- cdoj793-A Linear Algebra Problem
http://acm.uestc.edu.cn/#/problem/show/793 A Linear Algebra Problem Time Limit: 3000/1000MS (Java/Ot ...
- nyoj528-找球号(三) 【位运算】
http://acm.nyist.net/JudgeOnline/problem.php?pid=528 找球号(三) 时间限制:2000 ms | 内存限制:3000 KB 难度:2 描述 ...
- 如何使用eclipse搭建maven环境以及常见的错误
这篇博客适合零基础学习maven,搭建maven以及运行项目,常见的错误,我会在结尾写出说明白,看是否和大家的错误一样,或者文章的括号注释部分也会写出一些注意点. 第一步:就是下载maven,以及配置 ...
- Asp.net中FileUpload控件实现图片上传并带预览显示
单一图片上传——“选择”+“上传”,.NET默认模式: 1.实现原理: 采用FileUpload控件默认的使用方式,先由“选择”按钮选择图片,然后单击“上传”按钮完成上传,并可在“上传”按钮的 ...
- 如何添加ECSHOP广告位置
如何添加ECSHOP广告位置 我们都知道ecshop系统默认的广告位置非常的少,但是一个电子商务网站岂能离开广告?庆幸的是,ecshop预留了足够强大的组件让我们能够完全有可能实现任意我们想要广告位置 ...