7
votes

Est-il possible de désactiver la numérisation TagLib à Tomcat?

Au démarrage, Tomcat analyse récursivement les annuaires Web-Inf pour les fichiers TLD (descripteur de bibliothèque de balises). En conséquence, si une webApp a beaucoup de fichiers sous ce répertoire, il ralentit le processus de démarrage. Est-ce que quelqu'un sait s'il existe un moyen dans cette situation pour désactiver complètement le balayage, ou au moins fournir un filtre pour réduire la recherche?


4 commentaires

Y a-t-il un moyen d'attribuer uniquement les pots spécifiques que vous souhaitez scanner?


Mais si vous enlevez des pots, ils ne seront pas calculés correctement, n'est-ce pas?


@Aerox, je ne comprends pas bien votre question? Signifiez-vous que si vous faites cela, aucun descripteurs de la bibliothèque de balises ne sera trouvé? Si oui, ce n'était pas (et ce n'était toujours pas) un problème pour mon cas parce que je n'utilisais pas JSPS.


Je supposais que vous utilisiez des pages JSP usagées, j'ai donc dit que si vous éteignez complètement la numérisation, je suppose que vous ne pouvez pas le construire si vous souhaitez que certains pots spécifiques puissent procéder à une start-up propre. Si vous n'utilisiez pas de pots, ce n'est probablement pas le cas, n'est-ce pas?


4 Réponses :


14
votes

Vous pouvez ajouter des attributs de processtlds dans le contexte, xxx

Cependant, votre TLDS défini dans le fichier JAR ne fonctionnerait pas sans numériser les pots. Vous devez définir tous les TLD dans Web-Inf.


3 commentaires

Semble être un attribut Tomcat 7.


Savez-vous pourquoi je reçois cette erreur? "Définir la propriété 'ProcessTlds' sur" Faux "n'a pas trouvé de propriété correspondante." Est-ce parce que j'ai ajouté la propriété dans le global tomcat /conf/confr/context.xml?


Le même message («Pas de propriété correspondante») apparaît même après avoir supprimé la propriété de /conf/context.xml et l'a ajouté à Meta-Inf / Context.xml. Cette propriété n'est-elle pas prise en charge à Tomcat 8.5?



1
votes

Autre alternative (si vous préférez toujours numériser des pots), vous pouvez ajouter de nouvelles valeurs à "Tomcat.util.scan.defaultjarscanner.jarstoskip" propriété dans "{tomcat_home} /conf/catalina.properties".


2 commentaires

C'est nouveau à Tomcat 7, non? Dans mon cas, je suis toujours sur Tomcat 6, mais pour Tomcat 7 utilisateurs qui ressemble à une bonne option.


Oui. Non applicable à Tomcat 6. La propriété apparaît à Tomcat 7.



10
votes

J'ai été perplexe par le même problème. En regardant le code source de Tomcat 7.0.40, il n'est pas possible d'éviter la numérisation des pots en définissant 'processtlds = false', ils seront toujours numérisés pour des fragments Web (contextconfig.processjarsforwebfragments ()).

Il y a 2 options restantes : p>

Définir la propriété dans tomcat_home / conf / CONF / CATALINA.PROPERTES P>

<Context processTlds="false">
    <JarScanner className="org.my.tomcat.NullJarScanner"/>
</Context>


0 commentaires

10
votes

sur Tomcat 8 Il peut être résolu en ajoutant le méta-inf \ context.xml code> avec la configuration vue ci-dessous dans votre fichier de guerre. Pas besoin de changer la configuration Tomcat globale.

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <JarScanner>
        <JarScanFilter tldSkip="*.*"/>
    </JarScanner>
</Context>


0 commentaires