现象:
java.io.InvalidClassException:CartonPrintVO; local class
incompatible: stream classdesc serialVersionUID = xxxxx, local class
serialVersionUID = xxxxx
解决办法:
今天在修改了一个VO类后报出了
java.io.InvalidClassException: www.gbsou.com.CartonPrintVO; local
class incompatible: stream classdesc serialVersionUID =
1412277949381450533, local class serialVersionUID = -3559189311748262112
异常,分析了下原因:
本地和远程的类中serialVersionUID 值不一样.
解决方案:
将本地的序列化的类中的版本号(serialVersionUID )改成和远程中一样
从上列异常中可以看出
stream classdesc serialVersionUID = 1412277949381450533, (远程)
local class serialVersionUID = -3559189311748262112 (本地)
所以你只需要吧本地的序列化类里的private static final long serialVersionUID = 改成远程的就行了
没有 private static final long serialVersionUID = 这行代码的加上这行代码。
分享到:
相关推荐
### Java.io.InvalidClassException Local Class Incompatible 解决方案 在Java序列化过程中,经常会遇到`java.io.InvalidClassException`异常,特别是在序列化类时如果类的版本与反序列化环境中的类版本不一致的...
3. `java.io.NotSerializableException`: 当尝试序列化一个未实现Serializable接口的对象时抛出的异常。 4. `sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`(非标准API):用于将字节数组编码为Base64字符串,...
如果类的定义发生变化,比如添加了新的字段,通常需要更新这个版本号,否则反序列化时可能会抛出InvalidClassException异常。 在实际应用中,还应注意Java序列化机制的安全性问题,比如反序列化时可能受到恶意构造...
### Java中常见的异常及其解决方案 #### 一、空指针异常 (NullPointerException) **定义:** 空指针异常(`NullPointerException`)是Java中最常见的运行时异常之一,它发生在尝试访问一个空对象引用的属性或调用...
此外,对于工具的使用,Java标准库提供了`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`用于序列化和反序列化。第三方库如Apache Commons Lang的SerializationUtils,或Google的Gson和Protobuf也能简化...
2. `java.io.InvalidClassException`异常:这个异常可能是因为类路径或JDK版本不兼容。检查JDK配置,确保使用的JDK版本与WebLogic兼容。 解决这些问题的关键在于正确配置JDK,确保MyEclipse和WebLogic使用的JDK版本...
解决办法是在类中添加`serialVersionUID`字段,手动指定序列号。 10. `OutputStream.write(int b)`方法参数为何为`int`: 尽管`byte`类型的范围是-128到127,但由于Java中的整数默认是`int`类型,使用`int`参数...
在Java中,如果一个类需要支持序列化,它应该实现`java.io.Serializable`接口。 在Java序列化过程中,`serialVersionUID`扮演着至关重要的角色。`serialVersionUID`是一个长期不变的标识符,用于验证序列化版本的...
有时,启动WebLogic服务器可能会遇到问题,比如"The WebLogic Server did not start up properly."的提示或"java.io.InvalidClassException"异常。这些问题通常由于JDK选择错误引起。确保在MyEclipse配置中使用的JDK...
- **`SerialVersionUID`的作用**:序列化ID用于验证序列化对象的版本一致性,如果在序列化和反序列化过程中`SerialVersionUID`不匹配,则会导致`InvalidClassException`异常。 - **影响序列化的因素**:包括对象的...
在Java中,对象序列化是通过实现`java.io.Serializable`接口来实现的。 **Serializable接口**: `Serializable`接口是一个标记接口,它没有定义任何方法。当一个类实现了这个接口,就意味着该类的对象可以被序列化...
遇到"The WebLogic Server did not start up properly."提示或者java.io.InvalidClassException异常,通常是因为JDK选择不正确导致的。务必确保myEclipse和Weblogic配置中使用的JDK版本一致。如果使用了特定版本的...
反序列化时,必须确保类的定义与序列化时完全相同,包括类名、字段名和类型,否则可能会抛出`InvalidClassException`等异常。 除了基本的序列化,Java还提供了更高级的功能,如`transient`关键字,它可以用于标记...
在Java中,实现序列化的类需要实现`java.io.Serializable`接口。然而,仅仅实现这个接口并不足以确保序列化和反序列化始终成功,因为类的结构可能会随时间发生变化,如增加、删除或修改字段。这就是`...
如果`serialVersionUID`不一致,JVM会抛出`InvalidClassException`异常。 三、GenerateSerialVersionUID插件的使用 `GenerateSerialVersionUID`是一款便捷的开发工具,它可以自动在类中生成`serialVersionUID`。...
如果不同,可能会抛出`InvalidClassException`异常。 3. **默认序列化机制**:Java默认的序列化机制会递归地处理对象及其引用的所有对象。如果类中定义了`writeObject()`和`readObject()`方法,Java虚拟机将尝试...
7. **小应用**:这些可能是解决特定问题的小型代码片段,可能涵盖各种Java特性,如异常处理、反射、集合框架的使用等。 8. **day08**:这可能是学习日志或某个特定主题的代码示例,例如可能涉及了类、对象、继承、...
如果两个序列化ID不匹配,将会抛出`InvalidClassException`异常。 #### 四、IDEA中序列化ID无法自动生成的问题分析 在IDEA中开发时,有时会遇到实体类虽然实现了序列化接口,但是无法自动生成序列化ID的情况。这...
`serialVersionUID`是一个长整型变量,用于版本控制,当类的结构发生变化时,如果`serialVersionUID`未变,则反序列化时会抛出`InvalidClassException`异常,提示序列化版本ID不匹配。 序列化机制还支持“深复制”...
2. **面试问题大全**:全面准备各种Java面试问题,包括基础语法、面向对象、集合框架、多线程、异常处理、IO流、网络编程、设计模式等。对于高级话题,如JVM内存模型、垃圾回收机制、数据库操作、Spring框架等也应有...