【异常】com.alicp.jetcache.support.CacheEncodeException: Java Encode error.
本文目录
一、背景描述
二、问题原因
三、解决方案
一、背景描述
Spring boot 项目集成 Alibaba 的 JetCache 缓存开源框架。
Spring boot 集成 JetCache 框架之后,在需要添加缓存的方法上添加注解(@Cached)即可。已开启 本地缓存 + 远程缓存。示例代码如下:
上述方法中的返回值是 JavaBean 类型的,而我项目中的 JavaBean 代码如下:
注意:这个 JavaBean 没有实现序列化接口(这里是重点哦)。
在程序给这个方法远程缓存时,系统报错如下:
com.alicp.jetcache.support.CacheEncodeException: Java Encode error. msg=com.iot.back.message.process.dto.DeviceBasicInfoDTOat com.alicp.jetcache.support.JavaValueEncoder.apply(JavaValueEncoder.java:57)at com.alicp.jetcache.support.JavaValueEncoder.apply(JavaValueEncoder.java:13)at com.alicp.jetcache.redis.RedisCache.do_PUT(RedisCache.java:169)at com.alicp.jetcache.AbstractCache.PUT(AbstractCache.java:242)at com.alicp.jetcache.MultiLevelCache.PUT_caches(MultiLevelCache.java:193)at com.alicp.jetcache.MultiLevelCache.do_PUT(MultiLevelCache.java:164)at com.alicp.jetcache.AbstractCache.PUT(AbstractCache.java:242)at com.alicp.jetcache.MultiLevelCache.PUT(MultiLevelCache.java:66)at com.alicp.jetcache.Cache.put(Cache.java:74)at com.alicp.jetcache.SimpleProxyCache.put(SimpleProxyCache.java:43)at com.alicp.jetcache.AbstractCache.lambda$computeIfAbsentImpl$2(AbstractCache.java:153)at com.alicp.jetcache.AbstractCache.computeIfAbsentImpl(AbstractCache.java:163)at com.alicp.jetcache.RefreshCache.computeIfAbsent(RefreshCache.java:61)at com.alicp.jetcache.RefreshCache.computeIfAbsent(RefreshCache.java:56)at com.alicp.jetcache.anno.method.CacheHandler.invokeWithCached(CacheHandler.java:245)at com.alicp.jetcache.anno.method.CacheHandler.doInvoke(CacheHandler.java:92)at com.alicp.jetcache.anno.method.CacheHandler.invoke(CacheHandler.java:84)at com.alicp.jetcache.anno.aop.JetCacheInterceptor.invoke(JetCacheInterceptor.java:74)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)at com.iot.back.message.process.rpc.DeviceBasicInfoRpc$$EnhancerBySpringCGLIB$$a4ce3e3e.getDeviceBasicInfo(<generated>)at com.iot.back.message.process.domain.service.impl.DeviceReportServiceImpl.report2AlarmMessageDTO(DeviceReportServiceImpl.java:118)at com.iot.back.message.process.domain.service.impl.DeviceReportServiceImpl.execute(DeviceReportServiceImpl.java:54)at com.iot.back.message.process.apps.impl.ReportRouteServiceImpl.route(ReportRouteServiceImpl.java:56)at com.iot.back.message.process.apps.impl.ReportMessageResolveImpl.report2log(ReportMessageResolveImpl.java:26)at com.iot.back.message.process.kafka.listener.ReportConsumerListener.lambda$kafkaConsumer$0(ReportConsumerListener.java:36)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)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)
Caused by: java.io.NotSerializableException: com.iot.back.message.process.dto.DeviceBasicInfoDTOat java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)at com.alicp.jetcache.support.JavaValueEncoder.apply(JavaValueEncoder.java:48)... 30 common frames omitted
二、问题原因
上述程序报错的原因是程序在给这个方法的返回值进行缓存时,需要先序列化这个 JavaBean,然而呢,我项目中的这个 JavaBean 并没有实现序列化接口(Serializable),所以在程序运行时就报了如下的错误。
三、解决方案
解决方法很简单,将用到的这个 JavaBean 实现 序列化接口即可。
Bingo,重启程序可以正常运行啦。
完结!
【异常】com.alicp.jetcache.support.CacheEncodeException: Java Encode error.相关推荐
- java反序列化异常接不到_由Java对象反序列化异常想到的
今天写代码时候遇到一个异常,异常信息如下: Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException ...
- java 异常信息_优雅的异常处理 -- Java中的异常
处理异常自己处理 try-catch抛出让别人处理 throws 获得异常信息 直接打印异常对象 通过异常对象调用getMessage()方法获得 通过异常对象调用printStackTrace()方 ...
- java i o流异常问题_第四章 Java的I/O流和异常处理
Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多种格式,比如:基本类型.对象.本地化字符集等等. 一个流可以理解为一个数据 ...
- Android异常总结---W/System.err(661): java.lang.IllegalStateException: End of document.
Android异常总结---W/System.err(661): java.lang.IllegalStateException: End of document. 5.03-22 21:42:10. ...
- json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 参考文章: (1)json数据转换异 ...
- 使用Jstl异常:The absolute uri: http://java.sun.com/jsp/jstl/core cannotnbs
使用Jstl异常:The absolute uri: http://java.sun.com/jsp/jstl/core cannot&nbs 参考文章: (1)使用Jstl异常:The ab ...
- java编译异常有哪些_编译时JAVA最常见的错误有哪些
如果你正学习Java语言,你在编译和执行代码的时候遇到问题,一般来说问题将分为2类:无论你遇到的是编译时错误,这说明你的程序编译失败,还是你遇到运行时错误,这是指错误发生在你成功地编译了程序但不能运行 ...
- 【异常】java: Internal error in the mapping processor: java.lang.NullPointerException
本文目录 一.背景描述 二.错误原因 三.解决方案 一.背景描述 项目背景:IDEA(2020.3) + Springboot(2.1.5.RELEASE) + maven 报错内容:java: In ...
- org.apache.axis2.AxisFault: java.lang.Error: Unresolved compilation problem:
原创:转载请注明出处 今天遇到以下一个异常,找了好长时间,就是不知道什么原因, 在网上搜了好多,也没搜到相关的解决方法. 1.异常展示, org.apache.axis2.AxisFault: jav ...
最新文章
- docker pull下载镜像时的报错及其解决方法
- RDMA技术详解(一):RDMA概述
- python语言格式化输出_Python字符串格式化输出
- ASCII码对照表 转帖
- 算法笔记(JavaScript版)——排序
- ionic 添加地图定位功能
- C语言--关于指针两种初始化赋值操作
- 前端学习(237):IE条件注释法
- codeforces#239_div2_B Garland 简单模拟
- 从CTF比赛真题中学习压缩包伪加密与图片隐写术
- linux scp 隐藏文件,scp 客户端发现了隐藏 35 年的漏洞
- FreeWheel业务系统微服务化过程经验分享
- 微机接口技术实用教程(第2版)-任向民,王克朝,宗明魁-课后答案
- 需要显卡还是cpu_玩游戏卡顿,帧数低,是该升级显卡,还是升级cpu?
- 小米便签类间关系图绘制方法
- 2019年零售企业营销变革:私域流量池 + 个人IP =流量价值最大化!
- 【Unity】 Unity主题皮肤
- 公务员考试辅导:申论写作套路万能模板
- Running pipenv gives TypeError: 'module' object is not callable
- 美团分布式mysql_9种分布式ID生成之美团(Leaf)实战
热门文章
- lppl模型 matlab,【数学】用LPPL模型对2015年股灾回测
- 【SEER数据库简介】
- beta阶段事后诸葛亮会议
- 惠普打印机如何设置扫描到计算机,hp m435nw打印机怎么设置扫描到网络文件夹?...
- linux解压文件卡住,Linux系统下常见的压缩文件及解压方法
- Java黄金矿工小游戏,只需两小时完成,就是这么简单
- DELL Precision Tower7910重装系统+开机出现GRUB界面如何处理
- 公司要收我的毕业证书,这合法吗?
- vip地址能ping不通_Linux VIP(虚拟IP)配置后,无法ping通的问题处理
- (文末福利)这本现代魔法原理指南,把计算机体系掰开揉碎讲清楚了