【问题标题】:Jsp tld files cannot be resolvedjsp tld文件无法解析
【发布时间】:2024-01-03 08:45:01
【问题描述】:

我在tomcat 7 本地应用服务器上使用带有来自JSTL 或spring 的taglib 声明的JSP 1.2。 但总是,无论文件是在 WEB-INF/lib 下还是在类路径上的其他位置,我总是会收到如下错误: 绝对 uri:http://java.sun.com/jsp/jstl/core 无法在 web.xml 或随此应用程序部署的 jar 文件中解析 绝对 uri:http://www.springframework.org/tags/form 无法解析。 等等

我可以让 tomcat 解析这些文件的唯一方法是将它们从 jar 中提取到 WEB-INF 文件夹中。

【问题讨论】:

    标签: jsp jstl jsp-tags taglib tld


    【解决方案1】:

    在我因这个问题迷失了几个小时后 - 我询问了团队中的其他成员,他们告诉我出于性能目的 - catalina.properties 文件中有一个配置可以跳过 tld 文件扫描:

    tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*
    org.apache.catalina.startup.ContextConfig.jarsToSkip=*
    org.apache.catalina.startup.TldConfig.jarsToSkip=*
    tomcat.util.scan.DefaultJarScanner.jarsToSkip=*
    

    (请参阅此处的解释:https://wiki.apache.org/tomcat/HowTo/FasterStartUp 和此处:https://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html

    所以我将其更改为仅跳过一些沉重的 jar(尽管我可以添加任何我知道不包含 tld 文件的 jar)并且问题得到了解决。

    【讨论】: