【发布时间】:2016-09-09 19:32:35
【问题描述】:
我有以下会话范围的 bean:
@ManagedBean
@Component
@Scope(proxyMode= ScopedProxyMode.TARGET_CLASS, value="session")
public class SessionData implements Serializable {}
我将 tomcat 会话存储在数据库中。问题是,当应用程序尝试反序列化存储的会话时,我收到以下错误:
org.apache.catalina.session.PersistentManagerBase.swapIn Error deserializing Session EE913D2ACAD49EB55EDA657A54DFA2CB: {1}
java.lang.ClassNotFoundException: de.myproject.SessionData$$EnhancerBySpringCGLIB$$768b59b9
似乎它实际上序列化了整个Spring上下文,并且服务器重新启动后显然没有这样的类de.myproject.SessionData$$EnhancerBySpringCGLIB$$768b59b9,所以我收到了上述异常。
有没有办法避免这种情况,以便会话范围的 bean 被正确序列化?
更新:有一个issue 认为这是在没有 cmets 的情况下已解决,但我仍然面对它。
【问题讨论】:
-
如何将会话数据存储在数据库中?
-
我已将 Tomcat 服务器配置为在数据库中存储会话。
-
困惑:@ManagedBean 是 JSF 注解,为什么你在一个 bean 上同时有 JSF 和 Spring 注解?
标签: java spring spring-mvc session