IReport Erreur

caddy -  
 caddy -
Bonjour à tous,

Je suis toute débutante en génération des états en Java et j'utilise IReport 3.6.2. A cet effet, j'ai importé les .jar suivants :

commons-beanutils-1.8.0.jar
commons-collections-3.2.1.jar
commons-digester-1.7.jar
commons-logging-1.1.jar
itext-2.1.0.jar
jasperreports-3.6.2.jar
mysql-connector-java-5.1.6-bin.jar


après avoir généré le fichier "report2.jrxml".

Mon code :

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
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 com.mysql.jdbc.Driver;

public class JasperTest {
    public static void main(String[] args) {
        // - Paramètres de connexion à la base de données
            String url = "jdbc:mysql://localhost/jasper_database";
            String login = "root";
            String password = "";
            try {
                // - Connexion à la base
                Driver monDriver = new com.mysql.jdbc.Driver();
                DriverManager.registerDriver(monDriver);
                Connection connection = DriverManager.getConnection(url, login, password);
                // - Chargement et compilation du rapport
                JasperDesign jasperDesign = JRXmlLoader.load("C:\\Documents and Settings\\armel\\Mes documents\\report2.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,connection);
                // - Création du rapport au format PDF
                JasperExportManager.exportReportToPdfFile(jasperPrint,"C:\\Documents and Settings\\armel\\Mes documents\\report2.pdf");
                net.sf.jasperreports.view.JasperViewer.viewReport(jasperPrint);
            } catch (JRException e) {
                    e.printStackTrace();
            } catch (SQLException e) {
                    e.printStackTrace();
        }
    }


génère les erreurs:

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:157)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115)
at net.sf.jasperreports.engine.JasperCompileManager.getCompiler(JasperCompileManager.java:511)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:215)
at JasperTest.main(JasperTest.java:36)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.control.CompilationFailedException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 7 more
Java Result: 1
BUILD SUCCESSFUL (total time: 16 seconds)


Je me demande s'il n'y a pas une librairie manquante ou si mon fichier a été bien généré.

Vous pouvez m'aider à y voir plus clair?
Merci d'avance.
A voir également:

1 réponse

caddy
 
Coucou!
J'ai réussi à résoudre mon problème . En fait, l'erreur java.lang.NoClassDefFoundError est due à l'absence d'une librairie. Celle qui manquait à mon projet est com-jaspersoft-report. Bon, avec çà, j'ai toujours un message

log4j:WARN No appenders could be found for logger (net.sf.jasperreports.engine.xml.JRXmlDigesterFactory).
log4j:WARN Please initialize the log4j system properly. (mais tout marche bien quand même)


Mais je ne pense pas que ce soit lié aux librairies parce que j'ai d'abord installé toutes les librairies de ireport (et le message apparaissait déjà) et ensuite j'ai procédé par élimination en louchant sur les noms des .jar et en suivant mon instinct .

En bref, je pense qu'avec la version 3.6.2, les .jar élémentaires à lier à son projet sont:

jasperreports
commons-beanutils
commons-collections
commons-logging
itext
com-jaspersoft-report
mysql-connector-java
0