我运行一个基于 Java 的 CMS,它将缓存的图像放在 WEB-INF 文件夹中,具体来说是
/WEB-INF/imagecache/
。不幸的是,这个目录变得非常大,包含许多嵌套路径,Tomcat 重新启动变得非常慢 - 将日志级别设置为org.apache.jasper.servlet.TldScanner.level
FINE 可以显示原因,有大量这样的消息:
16-Mar-2022 13:50:56.109 FINE [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanResourcePaths No TLD files were found in resource path [/WEB-INF/imagecache/<snip>/].
有什么办法可以完全禁止 TldScanner 进入特定目录吗?
答案1
scanResourcePaths
将始终扫描 下的每个目录和文件/WEB-INF/
,除了/WEB-INF/classes/*
和/WEB-INF/lib/*
。这些值已硬编码到代码中,因此您无法更改它们。
更好的选择是不污染WEB-INF
目录,而是为缓存数据指定一个外部目录。这样做还有一个好处,即如果您出于任何原因需要重新部署应用程序,则不会丢失所有缓存。