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 :

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
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.