From: Frédéric Laurent (xml@opikanoba.org)
Date: 03/06/2002 - 13:54
the_peuffeur@voila.fr wrote:
> Merci pour ta réponse Frédéric mais je ne suis pas sur de bien
> comprendre.
> Ce que j'aimerai faire c'est compiler les xsl au démarrage du serveur
> Tomcat grace à une servlet en autoload (donc une seule compilation
par > xsl) et actuellement ca semble fonctionner pour plusieurs
utilisateurs > accédant à une même servlet malgré ce que dit la doc.
le problème avec les threads provient de la reproduction du cas de
figure où ça ne marche pas ;-)
> Est-ce qu'il y a quelque chose que je n'ai pas bien compris ?
> Si dans cette utilisation il y a des problèmes, je ne vois qu'une
> solution : créer un pool de xsl compilées (je ne sais pas encore
> comment mais ce doit être faisable) ...
> Pour info, voici un bout de mon code :
> InputStream XSLis =
> XSLTransformerCollection.class.getResourceAsStream(uri);
> StreamSource xslSource = new StreamSource(XSLis);
> xslSource.setSystemId(XSLis.toString());
> TransformerFactory tFactory = TransformerFactory.newInstance();
> Templates myTemplates = tFactory.newTemplates(xslSource);
> Transformer retour = myTemplates.newTransformer();
> // stockage de la xsl compilee en attribut d'1 singleton
> lstTransformerStyle.put(cle,retour);
en fait, il ne faut pas garder des Transformer mais des Templates...
lors du traitement de la requête, il faut prendre le Templates stocké
puis obtenir une copie locale d'un Transformer qui ne posera pas
de problème vis-à-vis des threads, car si un autre utilisateur fait
une nouvelle requête, la feuille de style fournira une nouvelle
copie locale de Transformer...
pour info, il y a un bouquin O'Reilly qui cause de ça (Java&XSLT)
http://safari.oreilly.com/main.asp?bookname=javaxslt&snode=50
cordialement
--
Frédéric Laurent
http://www.opikanoba.org
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|