错误信息:
原代码:
if (null != dtoErrorDataSqlResult) {
if (list.size() > 40) {
dtoErrorDataSqlResult.setDatas(list.subList(20, 40));
} else {
dtoErrorDataSqlResult.setDatas(list);
}
addValue("cacheDFS", cacheID, dtoErrorDataSqlResult);// 缓存查询结果
}
修改后的代码:
if (null != dtoErrorDataSqlResult) {
if (list.size() > 40) {
List<Map<String, String>> tmp = new ArrayList<>(list.subList(20, 40));
dtoErrorDataSqlResult.setDatas(tmp);
} else {
dtoErrorDataSqlResult.setDatas(list);
}
addValue("cacheDFS", cacheID, dtoErrorDataSqlResult);// 缓存查询结果
}
看源码注释得知错误原因是:List.subList方法返回的只是一个视图,而ehcache写入磁盘需要的是实体,所以出现此问题!
- 大小: 117.9 KB
分享到:
相关推荐
Java 中序列化 NotSerializableException 问题解决办法 Java 中序列化 NotSerializableException 问题是 Java 开发中常见的问题之一。 NotSerializableException 是 Java 中的一个异常,它发生在尝试序列化一个不...
项目中碰到的,记录一下解决方案
在【描述】中提到的问题,当你尝试启用二级缓存时,如果实体类没有实现`Serializable`接口,MyBatis在尝试序列化对象存储到缓存时会抛出`java.io.NotSerializableException`。这是因为Java的序列化机制要求可序列化...
导入java.io.NotSerializableException; 导入java.io.ObjectStreamException; 导入java.io.Serializable; 导入java.security.AccessController; 导入java.security.AuthProvider; 导入java.security....
Struts2是一个强大的Java web应用程序框架,它基于MVC(Model-View-Controller)设计模式,为开发人员提供了构建高效、可维护性高的Web应用的工具。XWork是Struts2的核心组件,它负责处理Action的业务逻辑和控制流程...
3. `java.io.NotSerializableException`: 当尝试序列化一个未实现Serializable接口的对象时抛出的异常。 4. `sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`(非标准API):用于将字节数组编码为Base64字符串,...
java.io.NotSerializableException: xxxxxx ``` 3. **解决方法** - **方法一**: 配置Tomcat不在关闭时保存Session数据。 在`server.xml`文件中的`<Context>`标签下添加以下内容: ```xml ...
在Java中,要实现对象的序列化,类必须实现`java.io.Serializable`接口。这个接口没有任何方法,仅仅作为一个标记,告诉Java虚拟机(JVM)这个类是可序列化的。 有两种主要的序列化方式: 1. 实现`Serializable`...
Java编程语言中,异常处理是程序健壮性的重要组成部分。当程序执行过程中遇到错误或特殊情况时,Java会抛出异常,这些异常分为两种主要类型:检查型异常(Checked Exceptions)和运行时异常(Runtime Exceptions)。...
9. **Java SE实用API**:涵盖java.util和java.text包中的类和接口,如日期和时间的处理、格式化、国际化等。 具体题目解析: - **QUESTION 1**:涉及对象的序列化。当一个实现序列化的类引用了未实现序列化的类时,...
### Java中将对象转换为byte数组的方法 在Java中,对象到byte数组的转换是一种常见的序列化技术,尤其是在网络通信、持久化存储等场景中。本文将详细介绍如何将一个Java对象转换为byte数组以及反向操作(即从byte...
可以使用`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`来实现: ```java public class MyClass implements Serializable { private MyObject reference; // ...其他属性和方法... public MyClass...
在题目中,由于`Tree`类没有实现`Serializable`接口,所以在尝试序列化`Forest`实例时,会抛出`java.io.NotSerializableException`。 2. **对象的序列化与反序列化**:在问题2中,正确的序列化和反序列化代码是选项...
Java还提供了`java.io.ObjectStreamClass`和`java.io.ObjectStreamConstants`等辅助类来处理序列化相关的元数据,以及`java.io.NotSerializableException`和`java.io.OptionalDataException`等异常,它们分别在对象...
Java对象序列化是Java开发中的一个重要概念,它允许我们将Java对象转换为字节流,以便存储、传输或在不同时间点恢复。以下是五个可能不为人知的关于Java对象序列化的知识点,这些知识点对于深入理解Java开发至关重要...
不实现该接口会导致NotSerializableException。 8. Word选中段落:在Word中,快速选中整个段落可以通过在段内任意位置连续点击鼠标三次。 9. 树的根结点数目:一棵树的根节点数量总是1。 10. 头结点的目的:在...
- **实现Serializable接口**:如果一个类需要序列化,那么这个类必须实现java.io.Serializable接口,否则序列化过程会抛出NotSerializableException。 7. **集合框架**: - **List和Set**:它们都继承自...
2. `Serializable`接口:在Java中,如果要序列化一个对象,该对象必须实现`Serializable`接口。否则,使用`ObjectInputStream`和`ObjectOutputStream`时会出现`NotSerializableException`异常。 3. Internet在中国...
- **集合框架**:Java提供了丰富的集合类,如`ArrayList`、`LinkedList`、`HashSet`和`HashMap`等。泛型允许在集合中指定元素类型,增强代码安全性和可读性。 9. **Java SE 实用 API**: - **`DateFormat`类**:`...