【问题标题】:Ehcache causing Tomcat 7 to give 404Ehcache 导致 Tomcat 7 给出 404
【发布时间】:2014-05-05 15:12:48
【问题描述】:

我有一个基于 Lift 的 REST 应用程序。我的开发环境运行的是 SBT 内置的 Jetty 服务器,应用程序部署在 Tomcat 7 上。

我最近将 Ehcache 集成到我的设置中,丢弃了自定义缓存。它在我的 Jetty 开发服务器中完美运行。但是,当我部署到 tomcat 时,我的 Lift 应用程序提供的任何 URL 都会得到 404。除了日志中的 404 之外,据我所知,没有任何例外,也没有任何相关的日志项。

当我注释掉引用 Ehcache 的行并将其作为依赖项删除时,Tomcat 启动并正常工作并提供这些 url。我一取消 Ehcache 的注释,就又是 404 了。

有人知道发生了什么吗?我知道 Ehcache 使用 SLF4J 来记录,这是否会阻止 ehcache 错误出现在我的日志中?

build.sbt 的相关部分:

  Seq(
"net.liftweb"       %% "lift-webkit"        % liftVersion        % "compile",
"net.liftweb"       %% "lift-mapper"        % liftVersion        % "compile",
"com.typesafe.slick" %% "slick" % "2.0.0-M3",
"org.eclipse.jetty" % "jetty-webapp"        % "8.1.7.v20120910"  % "container,test",
"org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container,test" artifacts Artifact("javax.servlet", "jar", "jar"),
"ch.qos.logback"    % "logback-classic"     % "1.0.6",
"org.specs2"        %% "specs2"             % "1.14"             % "test",
"mysql"             % "mysql-connector-java" % "5.1.25",
"net.sf.ehcache"    % "ehcache"             % "2.8.2",
"javax.transaction"    % "transaction-api"  % "1.1",
"org.slf4j"         % "slf4j-simple"        % "1.7.7"

)

ehcache.xml 的相关部分

<cache  name="mycache" 
        maxEntriesLocalHeap="10000" 
        maxEntriesLocalDisk="1000" 
        eternal="false" 
        diskSpoolBufferSizeMB="20" 
        timeToIdleSeconds="21600" 
        timeToLiveSeconds="43200" 
        memoryStoreEvictionPolicy="LFU" 
        transactionalMode="off">
</cache>

任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: tomcat7 ehcache


    【解决方案1】:

    终于解决了。这是两个不同的问题。首先,我在生产中运行的 Tomcat 7.0.42 存在一个(或多个)错误。 EhCache 默默地失败了。

    在 7.0.52 的单独安装中,它抛出了一个异常,说它无法找到我的 ehcache.xml 文件。将文件移动到 WEB-INF/classes/ 解决了该异常并且应用程序启动了。然而,回到我的 7.0.42 安装,它仍然无法启动。

    强制我的生产安装到 7.0.52 后,应用程序启动并正常工作。

    所以总的来说,我有两个问题:

    1. Ehcache 找不到我的配置文件
    2. Tomcat 7.0.42 似乎有错误

    解决方案:

    1. 将 ehcache.xml 移动到 WEB-INF/classes
    2. 从 7.0.42 升级 Tomcat -> 7.0.52

    【讨论】:

    • 顺便说一句,如果需要,您可以删除“提升”标签。 (对于这个 SO 帖子的下一个访问者来说,这会更有意义。)
    • 我使用的是 tomcat 7.0.69,我的ehcache.xmlWEB-INF/classes 下。我的症状和你的一样——webapp 只是拒绝启动并且没有错误消息。仍在调试,但很高兴看到您报告的内容。谢谢!
    • 我找到了问题的原因。只需在此处发布 stackoverflow.com/questions/41904488/… 感谢您的帖子,它引导我朝着正确的方向前进。
    猜你喜欢
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 2011-10-17
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    相关资源
    最近更新 更多