忽略 Tomcat TldScanner 中的目录

忽略 Tomcat TldScanner 中的目录

我运行一个基于 Java 的 CMS,它将缓存的图像放在 WEB-INF 文件夹中,具体来说是 /WEB-INF/imagecache/。不幸的是,这个目录变得非常大,包含许多嵌套路径,Tomcat 重新启动变得非常慢 - 将日志级别设置为org.apache.jasper.servlet.TldScanner.levelFINE 可以显示原因,有大量这样的消息:

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目录,而是为缓存数据指定一个外部目录。这样做还有一个好处,即如果您出于任何原因需要重新部署应用程序,则不会丢失所有缓存。

相关内容