【Java】Kryo运行报错:Exception in thread “main“ java.lang.IllegalArgumentException:Class is not registered
练习代码如下:
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import com.esotericsoftware.kryo.serializers.JavaSerializer;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;public class KryoDemo {public static void main(String[] args) {// 创建对象Person obj = new Person(123, "Sam");System.out.println(obj);// 序列化Kryo kryo = new Kryo();ByteArrayOutputStream os = new ByteArrayOutputStream();Output output = new Output(os);kryo.writeObject(output, obj);byte[] bytes = os.toByteArray();// 反序列化Input input = new Input(new ByteArrayInputStream(bytes));Person p = kryo.readObject(input, Person.class);System.out.println(p);}}
运行报错:
Exception in thread “main” java.lang.IllegalArgumentException: Class is not registered: org.example.Person
Note: To register this class use: kryo.register(org.example.Person.class);
at com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:512)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:560)
at org.example.KryoDemo.main(KryoDemo.java:21)
其实是因为缺了下面的语句:
kryo.register(Person.class, new JavaSerializer());
完整代码:
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import com.esotericsoftware.kryo.serializers.JavaSerializer;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;public class KryoDemo {public static void main(String[] args) {// 创建对象Person obj = new Person(123, "Sam");System.out.println(obj);// 注册实体类Kryo kryo = new Kryo();kryo.register(Person.class, new JavaSerializer());// 序列化ByteArrayOutputStream os = new ByteArrayOutputStream();Output output = new Output(os);kryo.writeObject(output, obj);byte[] bytes = os.toByteArray();// 反序列化Input input = new Input(new ByteArrayInputStream(bytes));Person p = kryo.readObject(input, Person.class);System.out.println(p);}}
同样地,Spark用到Kryo的时候也要注册!此处不加赘述!
【Java】Kryo运行报错:Exception in thread “main“ java.lang.IllegalArgumentException:Class is not registered相关推荐
- 【错误记录】Groovy 运行报错 ( Exception in thread “main“ groovy.lang.MissingMethodException: No signature of )
一.报错信息 在使用 Groovy 闭包时 , 会报如下错误 : Exception in thread "main" groovy.lang.MissingMethodExcep ...
- IDEA运行redis多线程访问报错Exception in thread “main“ java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
错误样式: 解决方案: 下载两个JAR包即可,同样的代码我在MyEclipse中运行就不报错,可能是IDEA缺少这两个JAR包吧,而ME本身自带了 托管下载地址:Central Repository: ...
- 【亲测有效】如何解决Hadoop运行jar包 报错Exception in thread “main“ java.lang.ClassNotFoundException: /input
报错解释 字面意思就是我要运行这个jar但是Java无法找到主类 试错过程 你可能会在这里添加主类,但是还是不行.你可能没辙了. 解决办法 <build><finalName> ...
- SpringBoot—启动报错Exception in thread “main“ java.lang.ClassNotFoundException
问题 在微服务启动时,日志排查发现无法启动. 解决方案 查看是否有xxxApplication类. 在pom.xml中查看中的内是否未加xxxApplication类.
- springboot启动报错Exception in thread “main“ java.lang.NoClassDefFoundError: io/netty/util/Timer
原因: 这是缺少netty包的原因. 解决方法: 加入一下依赖: <!-- https://mvnrepository.com/artifact/io.netty/netty-all --> ...
- Hadoop的java程序报错Exception in thread main java.io.FileNotFoundException: File does not exis
找了半天发现是因为路径没有写全 正确路径应该是E:/abc.txt 注意检查路径是不是写全了,尤其是后缀!!!
- 报错Exception in thread “main“ java.lang.NoClassDefFoundError: javax/xml/bind/...
项目一开始用的是jdk8,后来重新导入项目没有设置jdk的版本,idea自动设置jdk11 , jdk11没有javax.xml.bind 这个包,需要手动导包: <!-- https://mv ...
- idea启动springboot时报错Exception in thread “main“ java.lang.UnsupportedClassVersionError:
idea启动springboot时报错Exception in thread "main" java.lang.UnsupportedClassVersionError:org/s ...
- PI 使用JNative连接报错Exception in thread “main“ java.lang.IllegalStateException: JNative library not load
使用java调用PiApiTools连接PI数据库报错: Exception in thread "main" java.lang.IllegalStateException: J ...
- 函数式编程实例WordCount(林子雨老师慕课代码) 由于文件引入的问题之前报过Exception in thread “main“ java.lang.NullPointerExcept(已解决)
函数式编程实例WordCount 数据文件目录: 文件内容: 刚开始在写文件的时候以为val dirfile = new File("data")这一行写的是具体文件,于是我写成了 ...
最新文章
- Java基础知识练习02
- 【基带传输】基于matlab的简易无线基带传输系统的仿真
- Android踩坑日记:自定义水平和圆形ProgressBar样式
- oracle重命名日志成员出错,Oracle日志文件
- BURP 测试出 OPTIONS PUT DELETE TRACE 方法
- 【ArcGIS风暴】在ArcGIS中实现将一个圆16等分
- 计算机专业学术论文精选,计算机科学与技术专业本科生毕业论文精选.doc
- Conda solving environment一晚上还不能完成有解吗?
- html logo动画效果图,简单CSS3技巧实现的Logo动画
- python实现安卓点击_python模拟点击在ios中实现的实例讲解
- iis 附件上传有点慢_短视频悄悄上线!“一起培训”的这个新功能有点潮
- ASP.net中实现双表格同步缩放不变形
- 阶乘末尾 0 的个数
- python的raw_对于Python中RawString的理解(引用)
- linux qt遍历设备,Qt获取设备环境变量
- c语言浪漫烟花表白,C语言实战之浪漫烟花表白程序.pdf
- 打印机出现另存为xps_打印机打印文件显示另存为xps格式的文件 - 卡饭网
- 【Redis系列】Redis 入门指南
- 使用prometheus+grafana监控k8s集群
- VTK学习笔记(十九)vtk polydata