J'essaie de générer un document PDF à l'aide de FOP. Le code de génération PDF est conservé dans un servlet et le XSL est dans un dossier spécifique dans le dossier WebContent. p>
Comment puis-je accéder à ce fichier XSL en donnant un chemin relatif? Cela ne fonctionne que si je donne le chemin complet de l'objet de fichier. P>
Je dois générer du contenu XML de manière dynamique. Comment puis-je donner cette XML générée de manière dynamique comme source au lieu d'un objet de fichier? P>
Veuillez fournir vos suggestions. P>
3 Réponses :
Pour obtenir le chemin, vous pouvez simplement faire:
String path = s.getServletContext().getRealPath("/WEB-INF/somedir/hdfeeh");
Ne l'obtenez pas tout à fait. Je ne sais pas ce qui est s code>?
@Newbie s code> est un objet qui implémente
servleConfig code>
. httpServlet code> étend une classe qui implémente
servleConfig code>. Cela signifie que si votre classe s'étend code> httpservlet code>, vous pouvez faire
this.getservletContext () code>.
ça ne marche pas pour moi. Si je vérifie que le fichier existe avec un tel chemin, il reviendra de faux. Regardez ma question: Stackoverflow.com/Questtions/36598562/...
Pour une implémentation de conteneurs directe et indépendante, vous pouvez accéder à la ressource avec la méthode suivante GETRESOURCE () à l'intérieur de votre servlet:
/ Démarrer le servlet em> / p> public InputStream getResource(String resourcePath) {
ServletContext servletContext = getServletContext();
InputStream openStream = servletContext.getResourceAsStream( resourcePath );
return openStream;
}
public void testConsume() {
String path = "WEB-INF/teste.log";
InputStream openStream = getResource( path );
int c = -1;
byte[] bb = new byte[1024];
while ( -1 != ( c = openStream.read( bb ) ) ) {
/* consume stream */
}
openStream.close();
}
Malheureusement, je ne suis pas capable de charger la ressource dans le flux. Je reçois l'exception java.net.malformedurxception I imprimée servleContext et son indiquée comme com.ibm.ws.webcontainer.facade.servletcontextfacade@36c29971 Toutes les idées?
Après avoir utilisé servleContext.geterrealpath (FilePath); sa fonctionnement bien :)
Ici, le code fonctionne bien. J'utilise Tomcat 6. *. Maintenant, je vois que vous utilisez IBM Platform. Peut-être que c'est la différence entre les résultats.
J'ai utilisé la méthode suivante pour lire le fichier sous le contenu Web maintenant tout le contenu du fichier est disponible dans l'objet Reader. P> P>