我有一个PersistenceCapable类
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class MyClass
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
..........
..........
}
在我的servlet中,我需要在session
中存储这个类的对象............
MyClass u = new MyClass();
......
......
HttpSession session = req.getSession(true);
session.setAttribute("SV", u);
........
我正在java.lang.RuntimeException: java.io.NotSerializableException:
答案 0 :(得分:4)
会话可以临时存储在磁盘上或迁移到其他应用程序服务器。为了确保在这些情况下可以处理会话中的对象,它们需要是可以选择的。您可以通过实现Serializable
接口来标记这一点:
import java.io.Serializable;
public class MyClass implements Serializable {
}
答案 1 :(得分:1)
rsp is right:Serializable是正确答案,但实施Serializable只是第一步。例如。您还需要将所有字段设置为Serializable或transient。
阅读其中一个many tutorials about Java Serialization,或者最重要的是:通过Joshua Bloch购买Effective Java并阅读所有内容其中包括序列化的4章。
答案 2 :(得分:0)
我想在你的类中添加一堆注释并不会使它实现Serializable接口。为什么要这样?做public class MyClass implements Serializable { ...