是否可以在Tomcat中关闭taglib扫描?

在启动时,Tomcat递归扫描WEB-INF目录中的TLD(标记库描述符)文件。 因此,如果webapp在该目录下有很多文件,则会降低启动过程的速度。 有没有人知道在这种情况下是否有办法完全关闭扫描,或者至少提供一个filter来缩小搜索范围?

您可以在上下文中添加processTlds属性,

 

但是,如果不扫描JAR,JAR文件中定义的TLD将无法运行。 您必须在WEB-INF中定义所有TLD。

我对同样的问题感到困惑。 查看Tomcat 7.0.40的源代码,无法通过设置’processTlds = false’来避免jar扫描,仍然会扫描它们的Web片段(ContextConfig.processJarsForWebFragments())。

剩下2个选项:

在TOMCAT_HOME / conf / catalina.properties中设置属性

 org.apache.catalina.startup.ContextConfig.jarsToSkip=*.jar 

用您自己的实现替换StandardJarScanner,例如空的,并从my.war / META-INF / context.xml中引用它:

    

在后一种情况下,您需要确保NullJarScanner类在tomcat的lib目录中可用,而不是.war

在Tomcat 8上,可以通过将带有下面配置的META-INF\context.xml添加到WAR文件中来解决。 无需更改全局Tomcat配置。

       

相关文档可在此处获得: http : //tomcat.apache.org/tomcat-8.0-doc/config/jar-scan-filter.html

作为替代方案(如果您仍然喜欢扫描某些JAR),可以将新值附加到“{TOMCAT_HOME} /conf/catalina.properties”中的“tomcat.util.scan.DefaultJarScanner.jarsToSkip”属性。