Ireport erreur

Signaler
Messages postés
2
Date d'inscription
lundi 28 septembre 2009
Statut
Membre
Dernière intervention
27 novembre 2009
-
Messages postés
4
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
17 août 2012
-
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:

2 réponses

Messages postés
2
Date d'inscription
lundi 28 septembre 2009
Statut
Membre
Dernière intervention
27 novembre 2009

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
Messages postés
4
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
17 août 2012

pour moi j'ai utilisé version 3.0.1 et j'ai même erreur

comment je px résoudre voila l'erreur Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/io/Resource
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:161)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:119)
at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:57)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.instantiateRegistry(DefaultExtensionsRegistry.java:202)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:179)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:139)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getRegistries(DefaultExtensionsRegistry.java:125)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:102)
at net.sf.jasperreports.engine.component.ComponentsEnvironment.findComponentBundles(ComponentsEnvironment.java:94)
at net.sf.jasperreports.engine.component.ComponentsEnvironment.getCachedComponentBundles(ComponentsEnvironment.java:82)
at net.sf.jasperreports.engine.component.ComponentsEnvironment.getComponentBundles(ComponentsEnvironment.java:70)
at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.getSchemaLocations(JRReportSaxParserFactory.java:162)
at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.configureParser(JRReportSaxParserFactory.java:143)
at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.createParser(JRReportSaxParserFactory.java:108)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1316)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1291)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:203)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:168)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:152)
at imprimer.test.main(test.java:38)
Java Result: 1
GÉNÉRATION TERMINÉE (durée totale  1 seconde)




voila la classe qui j'ai utilisé




package imprimer;

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;



public class test {

public static void main(String[] args) throws ClassNotFoundException, JRException {

// - Paramètres de connexion à la base de données

Connection connection = null;

try {
// - Connexion à la base
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection("jdbc:odbc:cnn");

// - Chargement et compilation du rapport
JasperDesign jasperDesign = JRXmlLoader.load("C:\\Users\\dell\\Documents\\NetBeansProjects\\imprimer\\src\\imprimer\\imprimer.jrxml");
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

// - Paramètres à envoyer au rapport
Map parameters = new HashMap();
parameters.put("Titre", "Liste des imprimante");

// - Execution du rapport
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);

// - Création du rapport au format PDF
JasperExportManager.exportReportToPdfFile(jasperPrint, "C:\\Users\\dell\\Documents\\NetBeansProjects\\imprimer\\src\\imprimer\\imprimer.pdf");
} catch (JRException e) {
} catch (SQLException e) {
} finally {
try {
connection.close();
} catch (SQLException e) {
}
}

}
}