2010-10-07 81 views
2

我正在使用JSF1.1和JSP作为演示技术。 我有一个ArrayList的托管bean,我以列的形式显示列表。 一切工作正常。我有两个服务器节点的会话复制,当我复制会话并放下一个集群时,应用程序现在位于第二个集群上,但会话属性丢失。打印时会话映射为空

我试图使用ExternalContext打印sessionMap来查看会话属性,但也是null。

什么可能是一个可能的原因?

+0

mali如果可能的话请给我发送代码,请你如何设置并获取ExternalContext和sessionMap。 – asifaftab87 2016-01-18 19:40:52

回答

2

该属性可能不是Serializable。这是让它们坚持在磁盘上和/或通过网络传输字节的要求。

为了解决这个问题,只是确保所有会话属性(包括会话范围的受管Bean)实现Serializable这样的:

public class SomeSessionClass implements Serializable { 
    // ... 
} 

不要忘了做任何成员Serializable以及每当适用。例如。

public class SomeSessionClass implements Serializable { 
    private SomeNestedClass foo; // Has to implement Serializable as well! 
    // ... 
} 
+0

我创建了一个类来实现serializable并声明一个变量int,我只是想将其看作一个计数器。每当我切换节点时,我都会失去我的属性值。请帮助我。 – asifaftab87 2016-01-18 19:43:58