运行tomcat下面的 ssh项目,启动,打开某页面(让session起作用),停止;再启动,有可能会报类似如下的错误:
org.apache.catalina.session.StandardManager doLoad
严重: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: xxxxxxxx
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: xxxxxxxx
org.apache.catalina.session.StandardManager start
严重: Exception loading sessions from persistent storage
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: xxxxxxx
原因是:tomcat停止时,保存session资源,然后在重启服务后,会尝试恢复session。
解决办法一:
配置tomcat在关闭的时候就不去保存session资源。
在server.xml中Context下添加如下的内容:
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/>
再进行启动停止等操作,报如下的类似错误:
org.apache.catalina.session.PersistentManagerBase start
严重: No Store configured, persistence disabled
原因是添加的东东少添加了一点点儿。
解决办法:
修改刚才添加的 <Context>中<Manager> 元素:
将
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/>
改为:
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false">
<Store className="org.apache.catalina.session.FileStore"/>
</Manager>
即可解决该问题。
解决办法二:
将那些需要放在session的类进行序列化。
也就是让类实现接口java.io.Serializable即可。
分享到:
相关推荐
Java 中序列化 NotSerializableException 问题解决办法 Java 中序列化 NotSerializableException 问题是 Java 开发中常见的问题之一。 NotSerializableException 是 Java 中的一个异常,它发生在尝试序列化一个不...
在【描述】中提到的问题,当你尝试启用二级缓存时,如果实体类没有实现`Serializable`接口,MyBatis在尝试序列化对象存储到缓存时会抛出`java.io.NotSerializableException`。这是因为Java的序列化机制要求可序列化...
在题目中,由于`Tree`类没有实现`Serializable`接口,所以在尝试序列化`Forest`实例时,会抛出`java.io.NotSerializableException`。 2. **对象的序列化与反序列化**:在问题2中,正确的序列化和反序列化代码是选项...
java.io.NotSerializableException: xxxxxx ``` 3. **解决方法** - **方法一**: 配置Tomcat不在关闭时保存Session数据。 在`server.xml`文件中的`<Context>`标签下添加以下内容: ```xml ...
当尝试通过`java.io.ObjectOutputStream`序列化一个未实现`Serializable`接口的对象时,会引发`NotSerializableException`。 **原因分析:** 序列化是将对象状态转换为可以持久化或通过网络传输的形式的过程。Java...
Java对象序列化是Java开发中...了解以上知识点后,Java开发者能更好地理解和运用对象序列化,解决实际开发中遇到的问题,提升代码的质量和安全性。在日常编程中,适时地利用序列化可以显著提高程序的灵活性和可维护性。
在比较`java.io.BufferedWriter`和`java.io.FileWriter`时,题目询问哪一个功能仅存在于其中一个类中。选项E指出写入行分隔符到流是`BufferedWriter`独有的功能,这是正确的。`BufferedWriter`提供了一个`newLine()`...
问题7比较了`java.io.BufferedWriter`和`java.io.FileWriter`的能力。`BufferedWriter`除了提供基本的写入功能外,还支持行分隔符的写入,即`newLine()`方法,这是`FileWriter`所不具备的功能。 ### 8. 字符串操作 ...
4. **序列化问题**:RMI依赖于对象的序列化和反序列化,如果调用的对象未实现`java.io.Serializable`接口,会导致`NotSerializableException`。 5. **死锁和线程问题**:RMI调用可能涉及到多线程,如果线程管理不当...
在Java编程语言中,IO(Input/Output)和序列化是两个重要的概念,它们在处理数据存储、数据传输以及对象状态持久化等方面发挥着关键作用。在这个名为"IO.Files.Sezialization-task2"的任务中,我们将深入探讨这两个...
import java.io.*; public class Forest implements Serializable { private Tree tree = new Tree(); public static void main(String[] args) { Forest f = new Forest(); try { FileOutputStream fs = ...
- **问题4**:由于`DateFormat`没有`setLocale`方法,且`Local.Ialy`应为`Locale.ITALY`,代码存在编译错误,因此答案是D。 - **问题5**:未提供的问题5内容不完整,但通常涉及`FileInputStream`或`FileOutputStream...