¿Es posible desactivar la búsqueda taglib en Tomcat?
Pregunta
En el arranque, Tomcat Explora recurrentemente los directorios WEB-INF para TLD (biblioteca de códigos de descriptor) archivos. Como resultado, si una aplicación web tiene un montón de archivos bajo ese directorio, se ralentiza el proceso de inicio. ¿Alguien sabe si hay una manera en que la situación desactivar la búsqueda por completo, o al menos proporcionar un filtro para limitar la búsqueda?
Solución
Puede añadir processTlds en el contexto,
<Context processTlds="false" ... />
Sin embargo, los dominios de nivel superior definidas en el archivo JAR no funcionaría sin el escaneo de los archivos JAR. Usted tiene que definir todos los dominios de primer nivel en WEB-INF.
Otros consejos
Yo estaba perplejo por el mismo problema. Buscando en el código fuente de Tomcat 7.0.40, no es posible evitar los tarros de exploración mediante el establecimiento 'processTlds = false', que todavía serán analizados en busca de fragmentos web (ContextConfig.processJarsForWebFragments ()).
Hay 2 opciones restantes:
Situado en la propiedad TOMCAT_HOME / conf / catalina.properties
org.apache.catalina.startup.ContextConfig.jarsToSkip=*.jar
Reemplazar StandardJarScanner por su propia implementación, por ejemplo, uno vacío y se refieren a ella desde my.war / META-INF / context.xml:
<Context processTlds="false">
<JarScanner className="org.my.tomcat.NullJarScanner"/>
</Context>
En este último caso, tendrá que asegurarse de que la clase NullJarScanner está disponible en el directorio lib de Tomcat, no su .war
En Tomcat 8 se puede resolver mediante la adición de la META-INF\context.xml
con la configuración se muestra a continuación para el archivo WAR.
No es necesario cambiar la configuración global de Tomcat.
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<JarScanner>
<JarScanFilter tldSkip="*.*"/>
</JarScanner>
</Context>
La documentación pertinente está disponible aquí: http: / /tomcat.apache.org/tomcat-8.0-doc/config/jar-scan-filter.html
Como alternativa (si todavía prefiere escanear algunos JAR) se podría agregar nuevos valores a "tomcat.util.scan.DefaultJarScanner.jarsToSkip" propiedad "en TOMCAT_HOME {} /conf/catalina.properties".