Ireport erreur

caddy35 Messages postés 2 Date d'inscription lundi 28 septembre 2009 Statut Membre Dernière intervention 27 novembre 2009 - 26 nov. 2009 à 10:56
josef89 Messages postés 4 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 17 août 2012 - 6 oct. 2010 à 23:37
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.

2 réponses

caddy35 Messages postés 2 Date d'inscription lundi 28 septembre 2009 Statut Membre Dernière intervention 27 novembre 2009
27 nov. 2009 à 10:57
Coucou!
J'ai réussi à résoudre mon problème . En fait, l'erreur est due à l'absence d'une librairie. Celle qui manquait à mon projet est com-jaspersoft-report. Bon, avec çà, j'ai toujours un message

[b]log4j:WARN No appenders could be found for logger (net.sf.jasperreports.engine.xml.JRXmlDigesterFactory).
log4j:WARN Please initialize the log4j system properly./b (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:

[list]
jasperreports
commons-beanutils
commons-collections
commons-logging
itext
com-jaspersoft-report
mysql-connector-java
/list
0
Rejoignez-nous