E 'possibile disattivare la scansione taglib in Tomcat?
Domanda
All'avvio, Tomcat analizza ricorsivamente le directory WEB-INF per TLD (Tag Biblioteca descrittore) file. Di conseguenza, se una webapp ha un sacco di file in tale directory, si rallenta il processo di avvio. Qualcuno sa se c'è un modo in quella situazione di spegnere completamente la scansione, o almeno fornire un filtro per restringere la ricerca?
Soluzione
È possibile aggiungere processTlds attributi nel contesto,
<Context processTlds="false" ... />
Tuttavia, i domini di primo livello definite nel file JAR non avrebbe funzionato senza la scansione dei JAR. È necessario definire tutti i TLD in WEB-INF.
Altri suggerimenti
Ero perplesso per lo stesso problema. Guardando nel codice sorgente di Tomcat 7.0.40, non è possibile evitare la scansione vasi impostando 'processTlds = false', saranno comunque sottoposti a scansione per frammenti web (ContextConfig.processJarsForWebFragments ()).
Ci sono 2 opzioni rimanenti:
Impostare la proprietà in TOMCAT_HOME / conf / catalina.properties
org.apache.catalina.startup.ContextConfig.jarsToSkip=*.jar
Sostituire StandardJarScanner da una propria implementazione, ad esempio, una vuota e fare riferimento ad esso da my.war / META-INF / context.xml:
<Context processTlds="false">
<JarScanner className="org.my.tomcat.NullJarScanner"/>
</Context>
In quest'ultimo caso è necessario fare in modo che la classe NullJarScanner è disponibile nella directory lib di Tomcat, non il vostro .war
In Tomcat 8 può essere risolto con l'aggiunta del META-INF\context.xml
con la configurazione visto di seguito per il file WAR.
Non c'è bisogno di cambiare la configurazione globale di Tomcat.
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<JarScanner>
<JarScanFilter tldSkip="*.*"/>
</JarScanner>
</Context>
La documentazione relativa è disponibile qui: http: / /tomcat.apache.org/tomcat-8.0-doc/config/jar-scan-filter.html
In alternativa (se ancora desidera eseguire la scansione Alcuni vasi) si potrebbe aggiungere nuovi valori a "tomcat.util.scan.DefaultJarScanner.jarsToSkip" proprietà in "{} TOMCAT_HOME /conf/catalina.properties".