Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Jasper
Jasper Forum d'entraide sur Jasper Reports. Avant de poster --> FAQ Jasper, Tutoriels Jasper
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2007, 10h07   #1
Membre Expert
 
Avatar de lazarel
 
Homme
Consultant informatique
Inscription : mai 2007
Messages : 893
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2007
Messages : 893
Points : 1 360
Points : 1 360
Par défaut [Servlet] Pb génération HTML avec IMAGE_MAP ET IMAGE_URI

Bonjour,

Je génère mes rapports jxrml avec une servlet sur un serveur Tomcat. Pour la génération de Pdf et Excel pas de problème avec les images.

Pour Html mes images présentent dans mon rapport ne s'affiche pas. Je précise que j'utilise une java.net.URL sous IReport pour mes images.

Dans la java doc je trouve ambigu les notions de IMAGE_MAP et IMAGE_URI :

IMAGE_MAP
Citation:
A map containing all the images that were used for generating the report
IMAGE_URI
Citation:
An URI to the folder where all the images are stored.
L'une décrit toutes les images utilisé lors de la générations du rapport et l'autre le répertoire où sont stockés toutes les images.

Mais sur internet ou trouve à chaque fois la même chose :

Citation:
HashMap fontMap = new HashMap();
Map imagesMap = new HashMap();
request.getSession().setAttribute("IMAGES_MAP",imagesMap);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP,imagesMap);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image=");
Or cela ne marche pas si quelqu'un à déjà publié ces rapports sur un serveur et à générer des rapports en html contenant des images j'aprécierais bien de son aide


Cordialement Lazarel
lazarel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 11h48   #2
Invité régulier
 
Inscription : juin 2007
Messages : 22
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 22
Points : 7
Points : 7
je viens de me confronter au problème, j'y ai trouvé une solution mais ce n'est peut être pas la meilleure !

Je bosse avec jr 2.0.1 sous netbeans. Je me suis inspiré de l'exemple fournit avec le package de jr (demo/samples/webapp).

En fait, le JRHtmlExporter pendant son job appelle une servlet (ImageServlet) qui va s'occuper de lui fournir des ... images ! L'idée est donc de configurer ta webapp avec cette servelt.

Donc, premiere chose à faire est de vérifier que le jar jasperreports-2.0.1.jar est inclus dans ton projet. Il y a dans le package net.sf.jasperreports.j2ee.servlets la fameuse ImageServlet.

Ensuite dans le web.xml tu ajoutes la servlet ImageServlet :

Code :
1
2
3
4
5
 
    <servlet>
        <servlet-name>ImageServlet</servlet-name>
       <servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
    </servlet>
Puis il faut lui donner l'uri de son execution, uri qui sera appelée par le JRHtmlExporter lui meme. On lui donne meme en paramètre l'uri à appeler :
Code :
1
2
 
        exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=");
L'uri "../servlets/image" est appelée à chaque fois que nécessaire pour retrouver une image. Il est reste à mapper la servlet dans le web.xml :

Code :
1
2
3
4
5
 
    <servlet-mapping>
        <servlet-name>ImageServlet</servlet-name>
        <url-pattern>/servlets/image</url-pattern>
    </servlet-mapping>
Ma webapp définit donc une servlet ImageServlet avec l'uri /servlets/image; JRHtmlExporter() est appelé depuis une autre servlet avec l'uri /reporting/generer.do . Pour que celle ci "retrouve" ImageServelt il faut que le JRHtmlExporter aille dans le "chemin" précédent d'où les ".." dans "../servlets/image".

Dans mon cas ca fonctionne nickel chrome. Si ta servlet qui génère le rapport html a pour url un truc du genre : "/generer_rapport.do" alors il n'est pas besoin de mettre les ".." dans l'uri pour JRHtmlExporter.

En résumé, JR retrouver les images via une ImageServlet qu'il faut mapper dan s le web.xml; puis il faut jouer avec les url des appels et ca , c'est liée à l'application que tu développes.
A+
uetac est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h12.


 
 
 
 
Partenaires

Hébergement Web