java.lang.IllegalStateException:无法使用id org.springframework.web.context.WebApplicationContext反序列化BeanFactory

时间:2010-09-14 14:37:13

标签: spring jsf serialization

当我停止服务器时,我得到了这个例外:

SEVERE: Exception loading sessions from persistent storage
java.lang.IllegalStateException: Cannot deserialize BeanFactory with id org.springframework.web.context.WebApplicationContext:/Life: no factory registered for this id
    at org.springframework.beans.factory.support.DefaultListableBeanFactory$SerializedBeanFactoryReference.readResolve(DefaultListableBeanFactory.java:953)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeReadResolve(Unknown Source)

为什么?

1 个答案:

答案 0 :(得分:0)

我的猜测:当spring bean被序列化时(例如,作为http会话的一部分),在恢复spring时尝试不恢复其原始值(因为它们在反序列化后可能毫无意义),而是尝试获取它们他们的身份。如果你已经改变了你的bean定义并删除了有问题的bean,并且spring尝试反序列化它(从序列化它的地方开始,根据给定的信息在我不知道的情况下),它会抛出异常没有这样的豆子。