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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top