Tomcat 8 org.apache.catalina.webresources.Cache.getResource

iai*_*999 11 resources tomcat cache

我刚刚从 7.0.52 升级到 8.0.14。

我得到了很多静态图像文件:

org.apache.catalina.webresources.Cache.getResource 无法将位于 [/base/1325/WA6144-150x112.jpg] 的资源添加到缓存,因为在驱逐过期缓存条目后可用空间不足 - 考虑增加最大大小缓存的

我没有指定任何特定的资源设置,而且我没有在 7.0.52 中得到这个。

我发现在一个据称已修复的错误报告中提到了启动时发生的这种情况。对我来说,这不是在启动时发生,而是在请求资源时不断发生。

还有其他人有这个问题吗?

谢谢。

尝试至少禁用缓存,但我找不到如何指定不使用缓存的示例。属性已从 8 中的上下文中删除。尝试添加资源但无法正确配置。

<Resource name="file" 
    cachingAllowed="false"
    className="org.apache.catalina.webresources.FileResourceSet"
/>  
Run Code Online (Sandbox Code Playgroud)

Fua*_*ndi 15

你有几个错误:

  1. 应该是 <Resources>(复数)
  2. FileResourceSet 可以在 <Resources><PreResource> 部分中定义,如果需要等等......还没有很好的记录:上下文容器

这对 Tomcat 8.0.15 和 Liferay Portal 6.2.1 GA2(它有很多静态文件 + JDBC 池)很适用:

<?xml version='1.0' encoding='utf-8'?>
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
    <Resources
        cachingAllowed="true"
        cacheMaxSize="100000"
    />
    <Resource name="jdbc/liferay"
        auth="Container"
        type="javax.sql.DataSource"
        maxActive="64"
        maxIdle="16"
        maxWait="1000"
        username="root"
        password=""
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost/lp_621_ga2_patched?useUnicode=true&amp;characterEncoding=UTF-8&amp;useFastDateParsing=false&amp;autoReconnect=true"
        validationQuery="select 1;"
    />
</Context>
Run Code Online (Sandbox Code Playgroud)