【问题标题】:exception loading sessions from persistent storage从持久存储中加载异常会话
【发布时间】:2014-01-04 13:00:12
【问题描述】:

我对@9​​87654321@ 做了很多更改。目前,当我使用 eclipse run as...run on server 在新的 tomcat 服务器实例中启动应用程序时,我收到以下错误消息:

SEVERE: Exception loading sessions from persistent storage  

服务器和应用程序随后能够成功启动,但我想修复导致错误消息的任何原因。谁能告诉我如何克服这个错误信息?

堆栈跟踪没有列出来自应用程序的任何文件,所以我不知道在哪里查看应用程序代码来解决问题。您可以查看the petclinic code at github 以查看应用程序的结构,如果这有助于您了解我应该在哪里找到问题。这是堆栈跟踪:

INFO  EhCacheManagerFactoryBean - Initializing EhCache CacheManager
INFO  ContextLoader - Root WebApplicationContext: initialization completed in 4376 ms
Dec 16, 2013 2:51:56 PM org.apache.catalina.session.StandardManager doLoad
SEVERE: IOException while loading persisted sessions: java.io.EOFException  
java.io.EOFException
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
    at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
    at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:246)
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:204)
    at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:491)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Dec 16, 2013 2:51:56 PM org.apache.catalina.session.StandardManager startInternal
SEVERE: Exception loading sessions from persistent storage  
java.io.EOFException
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
    at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
    at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:246)
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:204)
    at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:491)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Dec 16, 2013 2:51:56 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'petclinic'  

【问题讨论】:

  • 我猜这是提供给 ehcache 的内容与预期内容之间的不匹配。看看ehcache.org/documentation/integrations/hibernate。您可以尝试通过更改 &lt;property name="hibernate.cache.use_second_level_cache"&gt;true&lt;/property&gt; &lt;property name="hibernate.cache.use_query_cache"&gt;true&lt;/property&gt; 来关闭它
  • 如果使用 Spring 配置,要更改的部分将是 &lt;prop key="hibernate.cache.use_second_level_cache"&gt;true&lt;/prop&gt; &lt;prop key="hibernate.cache.use_query_cache"&gt;true&lt;/prop&gt;

标签: java spring spring-mvc


【解决方案1】:

这与 Tomcat 无法加载先前关闭时保存的序列化 Web 会话有关。这可能是因为 Tomcat 没有完全关闭,因此会话对象在序列化过程中被损坏。

消除此错误的一种方法是在重新启动时禁用会话持久性。您可以通过编辑文件CATALINA_HOME/conf/context.xml 并将&lt;Manager&gt;pathname 属性设置为空字符串来执行此操作。这在 Tomcat 7 的文件中有详细记录:

<!-- Uncomment this to disable session persistence across Tomcat restarts -->

<Manager pathname="" />

您还应该在 Tomcat 关闭时从 CATALINA_HOME/work/Catalina/localhost/&lt;appName&gt; 文件夹中删除所有旧的 session.ser 文件。

如果需要跨重启的会话持久性,这在您的情况下可能是不可接受的。在这种情况下,需要进一步调试问题。

【讨论】:

  • 我刚刚删除了 SESSION.ser 文件,它对我有用。
  • @将完美回答!
【解决方案2】:

删除tomcat“工作”文件夹。重启tomcat服务器,希望它现在可以正常运行了!

这可以通过在 Tomcat 中选择服务器并选择“清理 Tomcat 工作目录”来完成

【讨论】:

    【解决方案3】:

    只需清理 Tomcat 工作目录..这对我来说效果很好。

    【讨论】:

      【解决方案4】:

      如果您使用的是 Spring Boot,只需将其添加到 application.properties:

      server.servlet.session.persistent=false
      

      【讨论】:

        【解决方案5】:

        这仅仅是因为 Persist Class 没有正确序列化只是停止 Apache。删除项目并清理项目和服务器。

        只需在此处重新部署即可。祝你好运。

        【讨论】:

          【解决方案6】:

          我在 eclipse 中的一个项目中遇到了类似的错误。我通过以下步骤解决了它:

          • 清理项目
          • 在eclipse的服务器视图中删除Tomcat服务器
          • 使用向导在 eclipse 的服务器视图中定义一个新的 Tomcat 服务器
          • 将项目添加到新定义的 Tomcat 服务器中

          之后,运行这个新的 Tomcat 服务器一切正常。

          【讨论】:

            【解决方案7】:

            -该类应该使用serialVersionUID 实现Serializable 接口。 - 进行干净的构建并重新启动服务器

            【讨论】:

              【解决方案8】:

              在 Spring Boot 中,您在 @GetMapping 端点上添加 @ResponseBody 注释。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2014-02-06
                • 2013-04-07
                • 1970-01-01
                • 1970-01-01
                • 2015-11-16
                • 1970-01-01
                • 1970-01-01
                • 2016-08-07
                相关资源
                最近更新 更多