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

iReport Discussion :

Problème: Error loading object from file


Sujet :

iReport

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Problème: Error loading object from file
    Voilà, on m'a demandé de créer un nouveau rapport sur une application web où il existe déjà des rapports, je me suis donc basé sur l'un des rapports existants pour créer ce qu'il me fallait, je précise que le rapport et les sous-rapports que j'ai pris comme modèles FONCTIONNENT.

    Avec un peu d'inverse engineering, j'ai compris que l'application créait des listes d'objets correspondant à chaque sous rapport (ça c'est dans mon Action) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    beanList.add(stagiaireList);
    beanList.add(periodeStageList);
    beanList.add(formationList);
    beanList.add(evenementList);
    beanList.add(fraisInscriptionList);
    ReportBuilder.buildReport( beanList, realPath, response);
    la beanList contient la liste des listes d'objets pour les sous-rapports (stagiaireList ne contient que le stagiaire, à la rigueur, je pourrais supprimer ce sous-rapport en l'intégrant directement au rapport principal) et realPath est une partie du chemin d'accès aux fichiers jasper (le path sera complété dans ReportBuilder).

    Dans ReportBuilder, on créé une liste de paramètres et on lui transmet les informations qui devront être affichées par le rapport principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Map parameters = new HashMap();
    parameters.put("ReportTitle", "titre");
    parameters.put("ImagePath", "img");
    Puis on parcourt la beanList récupérée en paramètre. Pour chaque liste contenue dans la beanList, on va automatiquement générer le chemin d'accès au fichier jasper correspondant, grâce au nom du type d'objet de la liste (ouais c'est un peu tiré par les cheveux mais j'ai vérifié et les noms concordent).

    on appelle ensuite la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public static void editSubReport(List list, Map parameters, String path, String param) throws Exception {
    	final JRDataSource subReportSource = new FractalBeanCollectionDataSource(beanList);
    	parameters.put(param + "SubReportSource", subReportSource);
    	final JasperReport jasperReport = JasperManager.loadReport(path);
    	parameters.put(param + "SubReport", jasperReport);
    }
    Où list est la liste des objets qui sera utilisée par le sous-rapport pour afficher les informations, parameters est la map de paramètres à passer au rapport principal, sourceFileName est le chemin d'accès complet au fichier jasper du sous-rapport et param est le nom du type d'objet.

    Et une fois la liste parcourue et tous les sous-rapports chargés, avec les données, dans la map parameters, on lance l'export du rapport principal.

    Le problème, c'est que j'arrive jamais là, l'application lance une exception à la ligne
    final JasperReport jasperReport = JasperManager.loadReport(path); où il charge le premier sous-rapport.

    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
     
    exception
     
    javax.servlet.ServletException: Error loading object from file : C:\workspace\oge\.\WEB-INF\src\com\arcorp\edition\gestag\ficheStagiaire\SubReportStagiaire.jasper
    org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    com.SecurityFilter.doFilter(SecurityFilter.java:52)
    com.TrackingFilter.doFilter(TrackingFilter.java:61)
     
    cause mère
     
    net.sf.jasperreports.engine.JRException: Error loading object from file : C:\[...]\SubReportStagiaire.jasper
    net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:133)
    net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:106)
    net.sf.jasperreports.engine.JasperManager.loadReport(JasperManager.java:1038)
    com.ReportBuilder.editSubReport(ReportBuilder.java:95)
    com.ReportBuilder.buildReport(ReportBuilder.java:76)
    com.ReportAction.execute(ReportAction.java:91)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    com.SecurityFilter.doFilter(SecurityFilter.java:52)
    com.TrackingFilter.doFilter(TrackingFilter.java:61)
    J'utilise Eclipse 3.1, l'application tourne sur un serveur Tomcat 5.0, la version du jar jasper report est 0.6.0 (ouais c'est vieux mais j'vais pas risquer d'upgrader vu que tous les autres rapports de l'application fonctionnent) et j'ai compilé les rapports avec iReports 2.0.5 (et la compatibilité est bien sur 0.6.0).

    Voilà, c'est tout. J'ai un peu abrégé le code et modifié quelques trucs par ci par là (pseudo confidentialité oblige... :p) mais j'ai vraiment repéré aucune erreur dans le code, pour moi, logiquement, ça devrait fonctionner, c'est juste qu'il arrive pas à charger les sous-rapport et j'ignore complètement pourquoi, j'ai même utilisé un rapport principal et des sous-rapports déjà existants (et qui fonctionnent) que j'ai ensuite modifiés via iReports pour obtenir ce qu'il me fallait.

    Donc si l'un de vous voit un truc qui cloche, qu'il n'hésite pas à me le dire parce que là, j'suis à court d'idées... Je peux aussi donner d'autres informations si nécessaire.

    Merci d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    bon, après y avoir regardé de plus près, cette erreur est causée par autre chose (ça apparait dans les logs et pas dans la page, c'est pour ça que je ne m'en suis pas rendu compte)

    java.io.InvalidClassException: net.sf.jasperreports.engine.base.JRBaseReport; local class incompatible: stream classdesc serialVersionUID = 10200, local class serialVersionUID = 600

    et ça viendrait du fait que c'est pas la même version de jasperreport qui est utilisée pour compiler les rapports et pour les charger.

    EDIT : j'ai fini par résoudre mon problème avec une classe qui permet de compiler les fichiers jrxml qui était déjà là, donc problème résolu sans avoir de réelle solution... vous pouvez foutre le sujet à la poubelle lol

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/03/2014, 11h16
  2. Problème "Error 404: SRVE0190E: File not found"
    Par ibousan dans le forum Websphere
    Réponses: 1
    Dernier message: 02/01/2012, 14h00
  3. Problème LOAD DATA IN FILE
    Par LostRailler dans le forum Requêtes
    Réponses: 8
    Dernier message: 29/09/2011, 10h44
  4. Could not load object from location
    Par AsyNew dans le forum Jasper
    Réponses: 4
    Dernier message: 02/05/2009, 16h52

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