2013-06-19 6 views
1

Je dois effectuer une transformation dans mon application Java. J'ai des difficultés à charger le fichier xsl. J'utilise tomcat, l'emplacement du chemin est:Impossible de charger le fichier xsl

C: /tomcat/webapps/ROOT/WEB-INF/classes/config/myfile.xsl

si j'utilise le chemin complet du chargement du fichier, mais si J'utilise /config/myfile.xsl je reçois un FileNotFoundException:

StreamSource xslt = new StreamSource("/config/myfile.xsl"); 
+1

Cette feuille de calcul est une ressource de votre webapp? Si c'est le cas, vous ne devriez pas essayer de le lire comme un fichier. Au lieu de le lire comme une ressource. – Raedwald

+0

Dans les chemins Unix, une barre oblique a une signification particulière. – Raedwald

+0

@Raedwald c'est un fichier 'xsl' pas un fichier Excel. – user86834

Répondre

2

Vous pouvez utiliser ServletContext.getResource pour résoudre des chemins relatifs à la webapp, par exemple

StreamSource xslt = new StreamSource(ctx.getResource(
    "/WEB-INF/classes/config/myfile.xsl").toString()); 

vous pouvez également utiliser getResourceAsStream et créer le StreamSource à partir d'un flux d'entrée au lieu d'une URL, mais si vous le faites alors des URL relatives à l'intérieur de votre feuille de style ne résoudrez pas, vous ne pouvez pas utiliser la fonction document avec un URI relatif dans votre XSLT.

+0

Merci, d'où vient 'ctx'? – user86834

+0

J'ai compris ça .. – user86834

Questions connexes