webentwicklung-frage-antwort-db.com.de

So beheben Sie eine JSP-Compiler-Warnung: Eine JAR wurde nach TLDs durchsucht, enthielt jedoch keine TLDs.

Beim Starten der Anwendung oder beim Kompilieren von JSP über ant beschwert sich Tomcat 7 Jasper über überflüssige oder falsch platzierte JAR-Dateien. Ich habe unten Nachricht bekommen 

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

Überspringen nicht benötigter JARs während des Scannens kann die Startzeit und die JSP-Kompilierzeit in Tomcat verbessern?

wie kann ich eine bessere Ausgabe ermöglichen?

47
gowthaman

Für Tomcat 8 musste ich Tomcat/conf/logging.properties folgende Zeile hinzufügen, damit die von Tomcat gescannten Gläser in den Protokollen angezeigt werden:

org.Apache.jasper.servlet.TldScanner.level = FINE
39
Guno Heitman

Tomcat 8.5 . Innerhalb von catalina.properties im Verzeichnis/conf:

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

Oder gehen Sie in die Datei context.xml im Verzeichnis/conf von Tomcat und fügen Sie Folgendes hinzu:

<JarScanner scanClassPath="false"/>
34

Die obige Lösung funktionierte nicht für mich. Stattdessen entfernte ich einfach das Hash (#) aus der letzten Zeile der Datei logging.properties, damit es funktioniert.

# To see debug messages in TldLocationsCache, uncomment the following line:
org.Apache.jasper.compiler.TldLocationsCache.level = FINE

Der nächste Schritt ist das Hinzufügen der Gläser, nach denen Tomcat 7 in den Dateien catalina.properties gleich nach der folgenden Zeile sucht 

org.Apache.catalina.startup.TldConfig.jarsToSkip=
15
skiabox

Wenn es jemandem hilft, habe ich den Inhalt der untenstehenden Ausgabedatei an den vorhandenen org.Apache.catalina.startup.TldConfig.jarsToSkip=-Eintrag angehängt. 

Beachten Sie, dass /var/log/Tomcat7/catalina.out der Ort Ihres Tomcat-Protokolls ist.

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

Hoffentlich hilft das.

10
Joseph Lust

Die Warnung wird angezeigt, da Tomcat alle Jars nach TLDs (Tagging Library Definition) durchsucht. 

Schritt 1 : Um zu sehen, welche JARs diese Warnung auslösen, fügen Sie die folgende Zeile in Tomcat/conf/logging.properties ein 

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

Jetzt sollten Sie Warnungen sehen können, deren JARs die erste Warnung auslösen

Schritt 2 Da das Überspringen nicht benötigter JARs während des Scannens die Startzeit und die JSP-Kompilierungszeit verkürzen kann, werden nicht benötigte JARS in der Datei catalina.properties übersprungen. Sie haben hier zwei Möglichkeiten - 

  1. Listen Sie alle JARs unter dem Tomcat.util.scan.StandardJarScanFilter.jarsToSkip auf. Dies kann jedoch umständlich werden, wenn Sie viele Gläser haben oder wenn sich die Gläser ständig ändern.
  2. Alternativ dazu Tomcat.util.scan.StandardJarScanFilter.jarsToSkip=* einfügen, um alle Gläser zu überspringen

Die obigen Warnungen sollten jetzt nicht angezeigt werden. Wenn Sie über eine beträchtlich große Anwendung verfügen, können Sie bei der Bereitstellung einer Anwendung viel Zeit sparen.

Hinweis: In Tomcat8 getestet

5
HopeKing

Kommentieren Sie diese Zeile (in /conf/logging.properties)

org.Apache.jasper.compiler.TldLocationsCache.level = FINE

Arbeitet für mich in Tomcat 7.0.53 !

4
user3585459

Für Tomcat 8 musste ich die folgende Zeile zu catalina.properties hinzufügen, um zu verhindern, dass von Tomcat gescannte Gläser verwendet werden:

Tomcat.util.scan.StandardJarScanFilter.jarsToSkip=jsp-api.jar,servlet-api.jar
4
Elcin ABD

Keines der oben genannten Vorgänge funktionierte für mich (Tomcat 7.0.62) ... Wenn Sensei_Shoh-Notizen die Klasse über der Nachricht sehen, fügen Sie dies zu logging.properties hinzu. Meine Protokolle waren:

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.

also fügte ich hinzu

org.Apache.catalina.startup.TldConfig.level = FINE

in conf/logging.properties

Danach bekam ich so viele "beleidigende" Dateien, dass ich mich nicht darum kümmerte, sie zu überspringen (und auch zur normalen Protokollierung zurückkehrte ...)

3
gkar

In der Fehlermeldung wird angegeben, welcher Logger verwendet wird. Legen Sie diesen Logger .level fest:

[jasper] Jul 31, 2012 7:15:15 PM org.Apache.jasper.compiler.TldLocationsCache tldScanJar

Der Logger ist also org.Apache.jasper.compiler.TldLocationsCache. Fügen Sie in Ihrer logging.properties-Datei folgende Zeile hinzu:

org.Apache.jasper.compiler.TldLocationsCache.level = FINE
1
Sensei_Shoh

Wenn die zusätzlichen Einträge im Protokoll Sie stören, aber eine zusätzliche Sekunde der Startzeit nicht, fügen Sie dies einfach zu Ihrem logging.properties hinzu und vergessen Sie es:

org.Apache.jasper.servlet.TldScanner.level = WARNING
0
Alex R