Comment réparer l’avertissement du compilateur JSP: un JAR a été analysé pour les TLD sans contenir de TLD?

Lors du démarrage de l’application ou de la compilation de JSP via ant, Tomcat 7 Jasper se plaint d’un fichier JAR superflu ou mal placé. J’ai reçu le message ci-dessous

**comstack-jsp:** [jasper] Jul 31, 2012 7:15:15 PM org.apache.jasper.comstackr.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’parsing peut améliorer le temps de démarrage et le temps de compilation JSP dans tomcat?

comment permettre un meilleur rendement?

Pour Tomcat 8 , j’ai dû append la ligne suivante à tomcat/conf/logging.properties pour que les jars 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:

 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\*.jar 

Ou allez dans context.xml, situé dans le répertoire / conf de Tomcat et ajoutez:

  

La solution ci-dessus n’a pas fonctionné pour moi. Au lieu de cela, 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.comstackr.TldLocationsCache.level = FINE 

L’étape suivante consiste à append les fichiers JAR que Tomcat 7 recherche dans les fichiers catalina.properties juste après la ligne suivante.

 org.apache.catalina.startup.TldConfig.jarsToSkip= 

Si cela aide quelqu’un, je viens d’append le contenu du fichier de sortie ci-dessous à l’ org.apache.catalina.startup.TldConfig.jarsToSkip= entrée existante.

Notez que /var/log/tomcat7/catalina.out est 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.

Décommentez cette ligne (dans /conf/logging.properties )

 org.apache.jasper.comstackr.TldLocationsCache.level = FINE 

Travailler pour moi dans tomcat 7.0.53 !

Pour Tomcat 8, j’ai dû append la ligne suivante à catalina.properties pour empêcher les jars analysés par Tomcat:

 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=jsp-api.jar,servlet-api.jar 

Rien de ce qui précède n’a fonctionné pour moi (tomcat 7.0.62) … Comme les notes Sensei_Shoh voient la classe au-dessus du message et l’ajoutent à 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 eu tellement de fichiers “offensants” que je n’ai pas pris la peine de les sauter (et je suis également revenu à la journalisation normale …)

L’avertissement apparaît car Tomcat parsing tous les fichiers JAR pour les TLD (définitions de bibliothèque de balisage).

Etape 1 : Pour voir quels JAR lancent cet avertissement, insérez la ligne suivante dans tomcat / conf / logging.properties

 org.apache.jasper.servlet.TldScanner.level = FINE 

Vous devriez maintenant être en mesure de voir les avertissements avec un détail des JAR à l’origine de l’avertissement initial

Etape 2 Etant donné que sauter des JAR inutiles au cours de l’parsing peut améliorer le temps de démarrage et le temps de compilation JSP, nous ignorerons les JARS inutiles dans le fichier catalina.properties . Vous avez deux options ici –

  1. Répertoriez tous les tomcat.util.scan.StandardJarScanFilter.jarsToSkip JAR sous tomcat.util.scan.StandardJarScanFilter.jarsToSkip . Mais cela peut devenir encombrant si vous avez beaucoup de pots ou si les pots continuent à changer.
  2. Vous pouvez tomcat.util.scan.StandardJarScanFilter.jarsToSkip=* insérer tomcat.util.scan.StandardJarScanFilter.jarsToSkip=* pour ignorer tous les jars

Vous ne devriez plus voir les avertissements ci-dessus et si vous avez une application très volumineuse, vous devriez gagner un temps considérable lors du déploiement d’une application.

Remarque: testé dans Tomcat8

Le message d’erreur indique quel enregistreur il utilise, définissez donc ce .level :

 [jasper] Jul 31, 2012 7:15:15 PM org.apache.jasper.comstackr.TldLocationsCache tldScanJar 

L’enregistreur est donc org.apache.jasper.comstackr.TldLocationsCache . Dans votre fichier logging.properties , ajoutez cette ligne:

 org.apache.jasper.comstackr.TldLocationsCache.level = FINE 

Si les entrées supplémentaires du journal vous dérangent mais qu’une seconde supplémentaire de temps de démarrage ne vous le permet pas, ajoutez-la simplement à votre logging.properties et oubliez-la:

 org.apache.jasper.servlet.TldScanner.level = WARNING