Lors du démarrage de l'application ou de la compilation de JSP via ant, Tomcat 7 Jasper se plaint du fichier JAR superflu ou égaré. J'ai le message ci-dessous
**compile-jsp:**
[jasper] Jul 31, 2012 7:15:15 PM org.Apache.jasper.compiler.TldLocationsCache tldScanJar
[jasper] INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
comment ignorer les fichiers JAR inutiles lors de l'analyse peut améliorer le temps de démarrage et le temps de compilation JSP dans tomcat?
comment permettre une meilleure sortie?
Pour Tomcat 8 , j'ai dû ajouter la ligne suivante à Tomcat/conf/logging.properties
pour que les bocaux analysés par Tomcat apparaissent dans les journaux:
org.Apache.jasper.servlet.TldScanner.level = FINE
Tomcat 8.5 . Dans catalina.properties, situé dans le répertoire/conf défini:
Tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\*.jar
Ou allez dans le fichier context.xml, situé dans le répertoire/conf de Tomcat, et ajoutez:
<JarScanner scanClassPath="false"/>
La solution ci-dessus n'a pas fonctionné pour moi . À la place, j'ai simplement supprimé le hachage (#) de la dernière ligne du fichier logging.properties, pour le faire fonctionner.
# To see debug messages in TldLocationsCache, uncomment the following line:
org.Apache.jasper.compiler.TldLocationsCache.level = FINE
La prochaine étape consiste à ajouter les fichiers jars recherchés par Tomcat 7 dans les fichiers catalina.properties juste après la ligne suivante.
org.Apache.catalina.startup.TldConfig.jarsToSkip=
Si cela peut aider quelqu'un, je viens d'ajouter le contenu du fichier de sortie ci-dessous à l'entrée org.Apache.catalina.startup.TldConfig.jarsToSkip=
existante.
Notez que /var/log/Tomcat7/catalina.out
correspond à l'emplacement de votre journal Tomcat.
egrep "No TLD files were found in \[file:[^\]+\]" /var/log/Tomcat7/catalina.out -o | egrep "[^]/]+.jar" -o | sort | uniq | sed -e 's/.jar/.jar,\\/g' > skips.txt
J'espère que cela pourra aider.
L'avertissement apparaît car Tomcat analyse tous les JAR à la recherche de définitions de bibliothèque de balisage (TLD).
Step1 : Pour voir quels JAR génèrent cet avertissement, insérez la ligne suivante dans Tomcat/conf/logging.properties
org.Apache.jasper.servlet.TldScanner.level = FINE
Maintenant, vous devriez être en mesure de voir les avertissements avec un détail de ce que les JAR sont à l'origine de l'avertissement initial
Étape 2 Étant donné que le fait de sauter des fichiers JAR inutiles lors de l'analyse peut améliorer le temps de démarrage et le temps de compilation JSP, nous ignorerons les fichiers JARS non nécessaires dans le fichier catalina.properties
. Vous avez deux options ici -
Tomcat.util.scan.StandardJarScanFilter.jarsToSkip
. Mais cela peut devenir lourd si vous avez beaucoup de pots ou si les pots changent constamment.Tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*
pour ignorer tous les bocauxVous devriez maintenant ne pas voir les avertissements ci-dessus et si vous avez une application considérablement volumineuse, cela devrait vous faire gagner un temps considérable dans le déploiement d'une application.
Remarque: testé dans Tomcat8
Décommentez cette ligne (dans /conf/logging.properties
)
org.Apache.jasper.compiler.TldLocationsCache.level = FINE
Le travail est pour moi dans Tomcat 7.0.53 !
Pour Tomcat 8, je devais ajouter la ligne suivante à catalina.properties pour empêcher les bocaux analysés par Tomcat:
Tomcat.util.scan.StandardJarScanFilter.jarsToSkip=jsp-api.jar,servlet-api.jar
Aucun de ce qui précède n'a fonctionné pour moi (Tomcat 7.0.62) ... Comme le note Sensei_Shoh, consultez la classe au-dessus du message et ajoutez-le à logging.properties. Mes journaux étaient:
Jan 18, 2016 8:44:21 PM org.Apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
alors j'ai ajouté
org.Apache.catalina.startup.TldConfig.level = FINE
dans conf/logging.properties
Après cela, j'ai reçu tellement de fichiers "incriminés" que je n'ai pas pris la peine de les ignorer (et j'ai également rétabli la journalisation normale ...)
Le message d'erreur indique le journal utilisé, définissez-le donc .level
[jasper] Jul 31, 2012 7:15:15 PM org.Apache.jasper.compiler.TldLocationsCache tldScanJar
Donc, l'enregistreur est org.Apache.jasper.compiler.TldLocationsCache
. Dans votre fichier logging.properties
, ajoutez cette ligne:
org.Apache.jasper.compiler.TldLocationsCache.level = FINE
Si les entrées supplémentaires dans le journal vous dérangent, mais qu'une seconde supplémentaire de temps de démarrage ne vous dérange pas, ajoutez simplement ceci à votre logging.properties
et oubliez-le:
org.Apache.jasper.servlet.TldScanner.level = WARNING