web-dev-qa-db-fra.com

Comment réparer l'avertissement du compilateur JSP: un JAR a été scanné pour les TLD sans contenir aucun TLD?

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?

47
gowthaman

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
39
Guno Heitman

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"/>
34
Alexey Nikitenko

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=
15
skiabox

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.

10
Joseph Lust

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 - 

  1. Répertoriez tous les fichiers JAR sous le Tomcat.util.scan.StandardJarScanFilter.jarsToSkip. Mais cela peut devenir lourd si vous avez beaucoup de pots ou si les pots changent constamment.
  2. Sinon, Insert Tomcat.util.scan.StandardJarScanFilter.jarsToSkip=* pour ignorer tous les bocaux

Vous 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

5
HopeKing

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 !

4
user3585459

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
4
Elcin ABD

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 ...)

3
gkar

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
1
Sensei_Shoh

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
0
Alex R