Est-il possible de désactiver l'analyse taglib dans Tomcat?
Question
Au démarrage, Tomcat analyse de manière récursive les répertoires WEB-INF pour les fichiers TLD (Tag Library Descriptor). Par conséquent, si une webapp a beaucoup de fichiers dans ce répertoire, il ralentit le processus de démarrage. Est-ce que quelqu'un sait s'il y a un moyen dans cette situation pour désactiver l'analyse complètement ou au moins fournir un filtre pour affiner la recherche?
La solution
Vous pouvez ajouter processTlds attributs dans le contexte,
<Context processTlds="false" ... />
Cependant, vos TLDs définis dans le fichier JAR ne fonctionneraient pas sans scanner les fichiers JAR. Vous devez définir tous les TLDs dans WEB-INF.
Autres conseils
Je suis intrigué par le même problème. En regardant dans le code source de Tomcat 7.0.40, il est impossible d'éviter le balayage des pots en réglant 'processTlds = false', ils seront toujours scannés pour fragments web (ContextConfig.processJarsForWebFragments ()).
Il y a 2 options restantes:
Définir la propriété dans TOMCAT_HOME / conf / catalina.properties
org.apache.catalina.startup.ContextConfig.jarsToSkip=*.jar
Remplacer StandardJarScanner par votre propre implémentation, par exemple un vide et s'y référer de my.war / META-INF / context.xml:
<Context processTlds="false">
<JarScanner className="org.my.tomcat.NullJarScanner"/>
</Context>
Dans ce dernier cas, vous devez vous assurer que la classe NullJarScanner est disponible dans le répertoire lib de tomcat, pas votre .war
Sur Tomcat 8, il peut être résolu en ajoutant la META-INF\context.xml
avec la configuration ci-dessous pour voir votre fichier WAR.
Pas besoin de changer la configuration globale Tomcat.
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<JarScanner>
<JarScanFilter tldSkip="*.*"/>
</JarScanner>
</Context>
La documentation pertinente est disponible ici: http: / /tomcat.apache.org/tomcat-8.0-doc/config/jar-scan-filter.html
Comme alternative (si vous préférez encore analyser certains fichiers JAR), vous pouvez ajouter de nouvelles valeurs à la propriété « tomcat.util.scan.DefaultJarScanner.jarsToSkip » dans « {TOMCAT_HOME} /conf/catalina.properties ».