IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Gerer Les fichier .jrxml dans une web Application


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 14
    Points
    14
    Par défaut Gerer Les fichier .jrxml dans une web Application
    Bonjour , je suis entrain de développer une application web sous netbeans IDE , a l'aide de visual Jsf . j'ai utilisé jasperReport pour mes état , mon problème c'est que je dois passer le chemin absolu du fichier .jrml pour que la génération du fichier pdf se découle correctement . ce qui posera sûrement un problème si on veut déployer l'application sur une autre machine .
    j'ai mis tout mes fichier jrxml dans un sous-répertoire de mon application , mais je ne trouve pas comment passer un chemin relatif a ceux ci .

    Voici Le Code avec le chemin absolu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
      JasperDesign jasperDesign = JRXmlLoader.load("D:/Documents and Settings/Administrateur/Mes documents/NetBeansProjects/Ese/jrxml/banques.jrxml");
        JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
    // - Paramètres à envoyer au rapport
        Map parameters = new HashMap();
        parameters.put("Titre", "Titre");
    // - Execution du rapport
        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters,
        HibernateUtil.getSession().connection());
    		byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);
    		FacesContext context = FacesContext.getCurrentInstance();
    		HttpServletResponse response = (HttpServletResponse) context
    				.getExternalContext().getResponse();
     
    		response.addHeader("Content-disposition",
    				"attachment;filename=rapport.pdf");
    		response.setContentLength(bytes.length);
    		response.getOutputStream().write(bytes);
    		response.setContentType("application/pdf");
    		context.responseComplete();
     
    }
    Moi j'aimerai faire comme ce ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JasperDesign jasperDesign = JRXmlLoader.load("/jrxml/banques.jrxml");
    //.............................
    malheureusement ça marche pas !! SVP si quelqu'un peut m'aider

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 74
    Points : 88
    Points
    88
    Par défaut
    Tu peux placer ton fichier .jrxml dans ton classpath et utiliser la méthode getResourceAsStream de la classe Class.

    Voir la FAQ.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 14
    Points
    14
    Par défaut C'est bon
    Salut tout le monde , je crois que je sais comment faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JasperDesign jasperDesign = JRXmlLoader.load(System.getProperty("user.dir")+"/webapps/Ese/resources/banques.jrxml");
    //...................
    System.getProperty("user.dir") : retourne le répertoire ou s'execute le fichier.
    j'ai un peu galéré mais enfin j'ai trouvé

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Desintegr :
    merci pour ta réponse mais malheureusement ta méthode marche seulement si j'exécute directement la classe test , par contre si je déploie l'application une exception est levé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    package ese;
     
     
    import java.sql.SQLException;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    import net.sf.jasperreports.engine.JRException;
    import net.sf.jasperreports.engine.JasperCompileManager;
    import net.sf.jasperreports.engine.JasperExportManager;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.JasperReport;
    import net.sf.jasperreports.engine.design.JasperDesign;
    import net.sf.jasperreports.engine.xml.JRXmlLoader;
    import pojo.HibernateUtil;
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    /**
     *
     * @author Administrateur
     */
    public class Print {
        public static void imp(){
    try {
    // - Connexion à la base
     
    // - Chargement et compilation du rapport
    JasperDesign jasperDesign = JRXmlLoader.load("web/resources/banques.jrxml");
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
    // - Paramètres à envoyer au rapport
    Map parameters = new HashMap();
    parameters.put("Titre", "Titre");
    // - Execution du rapport
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters,
    HibernateUtil.getSession().connection());
    // - Création du rapport au format PDF
    JasperExportManager.exportReportToPdfFile(jasperPrint,
    "Banques"+".pdf");
    } catch (JRException e) {
    e.printStackTrace();
     
        }
        }
    }
    et je l'appele comme ce ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     */
    public class test {
       public static void main ( String args []){
     
     
         Print.imp();
     
     
       }
     
    }
    ça marche tres bien.
    Je crois que l'erreur est la :
    quand je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class test {
       public static void main ( String args []){
     
     
        // Print.imp();
           System.out.println(System.getProperty("user.dir"));
     
       }
     
    }
    ça affiche : D:\Documents and Settings\Administrateur\Mes documents\NetBeansProjects\Ese
    par contre si je déploie l'application
    System.getProperty("user.dir") donne ça :
    D:\Program Files\Apache Software Foundation\Apache Tomcat 6.0.20\bin\

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/09/2010, 15h38
  2. Problème dans une Web Application
    Par ommenetti dans le forum Windows Forms
    Réponses: 0
    Dernier message: 26/01/2009, 14h54
  3. Les fichiers .swf dans une MasterPage
    Par casiii dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/07/2008, 16h47
  4. afficher les fichiers locaux dans une webapp
    Par gabardine dans le forum Flex
    Réponses: 0
    Dernier message: 21/05/2008, 16h02
  5. [Tomcat]Où mettre les fichiers properties dans une appli web
    Par tchouki dans le forum Tomcat et TomEE
    Réponses: 11
    Dernier message: 31/01/2006, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo