当我部署webapp时,我会看到以下错误消息:
com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/qtl.xhtml]
java.io.NotSerializableException: org.apache.catalina.session.StandardSessionFacade
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at java.util.HashMap.writeObject(HashMap.java:1001)
...我研究了一下,这个错误可能是因为我试图序列化不可序列化的属性。所以我有一个ApplicationScoped托管bean,如下所示
@ManagedBean
@ApplicationScoped
public class ApplicationBean implements Serializable {
private Map<String, HttpSession> logins;
...
}Map<String, HttpSession> logins可以序列化吗?
Tomcat 7
发布于 2012-02-10 19:20:45
HttpSession确实是不可序列化的。毕竟,应用程序作用域bean也不应该是可序列化的。从应用程序作用域bean类中删除implements Serializable,不要将其作为会话或视图作用域bean的托管属性注入。相反,只将其注入一个请求作用域bean中,或者从应用程序映射中获取它。
https://stackoverflow.com/questions/9233111
复制相似问题