本文目录

一、背景描述

二、问题原因

三、解决方案


一、背景描述

Spring boot 项目集成 AlibabaJetCache 缓存开源框架。

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.相关推荐

  1. java反序列化异常接不到_由Java对象反序列化异常想到的

    今天写代码时候遇到一个异常,异常信息如下: Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException ...

  2. java 异常信息_优雅的异常处理 -- Java中的异常

    处理异常自己处理 try-catch抛出让别人处理 throws 获得异常信息 直接打印异常对象 通过异常对象调用getMessage()方法获得 通过异常对象调用printStackTrace()方 ...

  3. java i o流异常问题_第四章 Java的I/O流和异常处理

    Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标.  Java.io包中的流支持很多种格式,比如:基本类型.对象.本地化字符集等等.  一个流可以理解为一个数据 ...

  4. 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. ...

  5. json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException

    json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 参考文章: (1)json数据转换异 ...

  6. 使用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 ...

  7. java编译异常有哪些_编译时JAVA最常见的错误有哪些

    如果你正学习Java语言,你在编译和执行代码的时候遇到问题,一般来说问题将分为2类:无论你遇到的是编译时错误,这说明你的程序编译失败,还是你遇到运行时错误,这是指错误发生在你成功地编译了程序但不能运行 ...

  8. 【异常】java: Internal error in the mapping processor: java.lang.NullPointerException

    本文目录 一.背景描述 二.错误原因 三.解决方案 一.背景描述 项目背景:IDEA(2020.3) + Springboot(2.1.5.RELEASE) + maven 报错内容:java: In ...

  9. org.apache.axis2.AxisFault: java.lang.Error: Unresolved compilation problem:

    原创:转载请注明出处 今天遇到以下一个异常,找了好长时间,就是不知道什么原因, 在网上搜了好多,也没搜到相关的解决方法. 1.异常展示, org.apache.axis2.AxisFault: jav ...

最新文章

  1. docker pull下载镜像时的报错及其解决方法
  2. RDMA技术详解(一):RDMA概述
  3. python语言格式化输出_Python字符串格式化输出
  4. ASCII码对照表 转帖
  5. 算法笔记(JavaScript版)——排序
  6. ionic 添加地图定位功能
  7. C语言--关于指针两种初始化赋值操作
  8. 前端学习(237):IE条件注释法
  9. codeforces#239_div2_B Garland 简单模拟
  10. 从CTF比赛真题中学习压缩包伪加密与图片隐写术
  11. linux scp 隐藏文件,scp 客户端发现了隐藏 35 年的漏洞
  12. FreeWheel业务系统微服务化过程经验分享
  13. 微机接口技术实用教程(第2版)-任向民,王克朝,宗明魁-课后答案
  14. 需要显卡还是cpu_玩游戏卡顿,帧数低,是该升级显卡,还是升级cpu?
  15. 小米便签类间关系图绘制方法
  16. 2019年零售企业营销变革:私域流量池 + 个人IP =流量价值最大化!
  17. 【Unity】 Unity主题皮肤
  18. 公务员考试辅导:申论写作套路万能模板
  19. Running pipenv gives TypeError: 'module' object is not callable
  20. 美团分布式mysql_9种分布式ID生成之美团(Leaf)实战

热门文章

  1. lppl模型 matlab,【数学】用LPPL模型对2015年股灾回测
  2. 【SEER数据库简介】
  3. beta阶段事后诸葛亮会议
  4. 惠普打印机如何设置扫描到计算机,hp m435nw打印机怎么设置扫描到网络文件夹?...
  5. linux解压文件卡住,Linux系统下常见的压缩文件及解压方法
  6. Java黄金矿工小游戏,只需两小时完成,就是这么简单
  7. DELL Precision Tower7910重装系统+开机出现GRUB界面如何处理
  8. 公司要收我的毕业证书,这合法吗?
  9. vip地址能ping不通_Linux VIP(虚拟IP)配置后,无法ping通的问题处理
  10. (文末福利)这本现代魔法原理指南,把计算机体系掰开揉碎讲清楚了