Domanda Come correggere l'avviso del compilatore JSP: un JAR è stato scansionato per TLD ma non conteneva TLD?


Quando si avvia l'applicazione o si compila JSP tramite form, Tomcat 7 Jasper si lamenta del file JAR superfluo o fuori posto. Ho ricevuto sotto il messaggio

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

come saltare i file JAR non necessari durante la scansione può migliorare il tempo di avvio e il tempo di compilazione JSP in tomcat?

come abilitare un output migliore?


44
2018-01-17 09:19


origine


risposte:


Per Tomcat 8, Ho dovuto aggiungere la seguente riga a tomcat/conf/logging.properties per i vasi scansionati da Tomcat per essere visualizzati nei registri:

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

35
2018-02-27 15:29



Tomcat 8.5. All'interno di catalina.properties, che si trova nella directory / conf impostata:

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

Oppure vai in context.xml, che si trova nella directory / conf di Tomcat e aggiungi:

<JarScanner scanClassPath="false"/>

27
2017-09-06 21:55



La soluzione di cui sopra non ha funzionato per me. Invece ho semplicemente rimosso l'hash (#) dall'ultima riga del file logging.properties, per farlo funzionare.

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

Il prossimo passo è aggiungere i vasi che Tomcat 7 sta cercando nei file catalina.properties subito dopo la riga seguente

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

15
2017-09-24 17:29



Se aiuta qualcuno, ho semplicemente aggiunto il contenuto del file di output sottostante all'esistente org.apache.catalina.startup.TldConfig.jarsToSkip= iscrizione.

Nota che /var/log/tomcat7/catalina.out è la posizione del tuo registro 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

Spero possa aiutare.


10
2018-05-10 23:42



Decommenta questa linea (in /conf/logging.properties)

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

Il lavoro è per me dentro tomcat 7.0.53!


4
2018-04-29 13:23



Per Tomcat 8, ho dovuto aggiungere la seguente riga a catalina.properties per impedire i file scansionati da Tomcat:

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

4
2018-01-26 11:03



Nessuno dei precedenti ha funzionato per me (tomcat 7.0.62) ... Poiché le note Sensei_Shoh vedono la classe sopra il messaggio e la aggiungono a logging.properties. I miei log erano:

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.

così ho aggiunto

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

in conf / logging.properties

Dopo di ciò ho ricevuto così tanti file "offensivi" che non mi sono preoccupato di saltarli (e anche di tornare alla normale registrazione ...)


3
2018-01-20 10:14



L'avviso si presenta perché Tomcat esegue la scansione di tutti i jar per i TLD (codifica delle definizioni di libreria).

Passo 1: Per vedere quali JAR stanno sollevando questo avviso, inserire la seguente riga in tomcat / conf / logging.properties

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

Ora dovresti essere in grado di vedere gli avvertimenti con un dettaglio di quali JAR stanno causando l'avviso iniziale

Passo 2 Poiché saltare i JAR non necessari durante la scansione può migliorare i tempi di avvio e la compilazione JSP, salteremo i JAR non necessari nel catalina.properties file. Hai due opzioni qui -

  1. Elenca tutti i JAR sotto il tomcat.util.scan.StandardJarScanFilter.jarsToSkip. Ma questo può diventare ingombrante se hai molti barattoli o se i barattoli continuano a cambiare.
  2. In alternativa, Inserire tomcat.util.scan.StandardJarScanFilter.jarsToSkip=* saltare tutti i barattoli

Ora non dovresti vedere gli avvisi di cui sopra e se hai un'applicazione considerevole, dovrebbe farti risparmiare molto tempo nella distribuzione di un'applicazione.

Nota: testato in Tomcat8


3
2017-08-18 08:12



Il messaggio di errore indica quale registratore sta utilizzando, quindi imposta quel logger .level:

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

Quindi il logger è org.apache.jasper.compiler.TldLocationsCache. Nel tuo logging.properties file, aggiungi questa riga:

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

1
2018-01-06 21:49



Se le voci extra nel registro ti infastidiscono, ma non un secondo extra del tempo di avvio, aggiungi questo al tuo logging.properties e dimenticatene:

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

0
2018-05-27 18:32