java - Eclipse/Tomcat 在 SESSIONS.ser 上不断崩溃

标签 java eclipse tomcat

这让我抓狂。当我保存某些内容时,Tomcat 偶尔会崩溃并出现以下错误... 编辑 JSP 或 Java 文件。保存您的工作。那么可能有 25% 的概率发生崩溃……这里的线索是它在大多数时间都能正常工作。

崩溃后,简单的服务器重启即可再次修复。

我已经用谷歌搜索死了。

  • 据我所知,这与保存 session 以在重新启动之间重新加载有关。但是在开发过程中,这是一个很大的帮助。所以我不想禁用它。

  • 我知道这听起来像是文件夹权限问题。但它大部分时间都工作正常。即我可以在资源管理器中查看文件夹并看到文件 SESSIONS.ser 正确出现和消失。而且它通常不会爆炸。

  • 我已验证整个相关的 Workspace 文件夹结构已从 AV 和备份软件中排除。

但仍然......不断崩溃。

请帮忙。我没有想法...

谢谢

使用:Eclipse Kepler、Tomcat 7.0.45、Java 1.7.0_45-b18 64 位、Windows 7 Pro 64 位、16GB 内存。

Feb 11, 2014 11:00:15 AM org.apache.catalina.session.StandardManager doUnload
SEVERE: IOException while saving persisted sessions: java.io.FileNotFoundException: D:\Workspace\Tomcat\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\_\SESSIONS.ser (The system cannot find the path specified)
java.io.FileNotFoundException: D:\Workspace\Tomcat\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\_\SESSIONS.ser (The system cannot find the path specified)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:386)
    at org.apache.catalina.session.StandardManager.unload(StandardManager.java:353)
    at org.apache.catalina.session.StandardManager.stopInternal(StandardManager.java:518)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5622)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3947)
    at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:426)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1345)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
    at java.lang.Thread.run(Unknown Source)

Feb 11, 2014 11:00:15 AM org.apache.catalina.session.StandardManager stopInternal
SEVERE: Exception unloading sessions to persistent storage
java.io.FileNotFoundException: D:\Workspace\Tomcat\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\_\SESSIONS.ser (The system cannot find the path specified)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:386)
    at org.apache.catalina.session.StandardManager.unload(StandardManager.java:353)
    at org.apache.catalina.session.StandardManager.stopInternal(StandardManager.java:518)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5622)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
    at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3947)
    at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:426)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1345)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
    at java.lang.Thread.run(Unknown Source)

最佳答案

尝试将 metadata-complete="true"添加到您的 web.xml 并重新启动 tomcat。它解决了我的另一个文件丢失问题,但我仍然不确定为什么它对我有用。

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5" metadata-complete="true">

关于java - Eclipse/Tomcat 在 SESSIONS.ser 上不断崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21707485/

相关文章:

java - 登录tomcat不起作用

Java 子字符串正在将我的正索引切换为负索引

java - 使用 PowerMock 和 Robolectric - IncompatibleClassChangeError

java - 通过 MenuItem 触发方法

eclipse - 向Eclipse添加上下文 Action 的简单方法

java - 解决Tomcat中的Bind异常

tomcat - Apache Tomcat7 无法在我的 Ubuntu Server 12.04 上运行

java - Jar 到 exe 的问题,类路径的理解

java - 解决java读取输入文件异常的问题

Eclipse 中的 Java EE 模块依赖项页面缺少项目