Bonjour tout le monde,
Alors, je vous explique mon problème. J'ai un programme java (ExportHtml) qui me permet de générer une fichier html à partir d'un fichier .jasper à l'aide de la fonction JasperExportManager.exportReportToHtmlFile
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
44
45
46
47
48
49
50
51
52
53 package ExportHtml; import net.sf.jasperreports.engine.JasperExportManager; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; //import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; import com.mysql.jdbc.Connection; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JRException; public class html { public static void main(String[] args) throws JRException, SQLException, IOException { String url = "jdbc:mysql://ip/database"; String login = "toto"; String password = "toto"; String fichier ="//root//Desktop//report//liste_report.txt"; // - Le chemin du fichier à lire File file = new File("//root//Desktop//report"); // - Le chemin du répertoire des fichiers Jasper Driver monDriver = new org.gjt.mm.mysql.Driver(); DriverManager.registerDriver(monDriver); Connection connexion = (Connection) DriverManager.getConnection(url, login, password); InputStream ips=new FileInputStream(fichier); InputStreamReader ipsr=new InputStreamReader(ips); BufferedReader br=new BufferedReader(ipsr); String ligne; while ((ligne=br.readLine())!=null){ System.out.println(ligne); // - Recuperation du fichier jasper JasperPrint jasperPrint = JasperFillManager.fillReport(new FileInputStream(new File(file, ligne+".jasper")),null,connexion); // - Création du rapport au format HTML (chemin complet) JasperExportManager.exportReportToHtmlFile(jasperPrint, "//var//www//baw_report//"+ligne+".html"); } br.close(); } }
Jusque la pas de problème ça fonctionne. Sauf que maintenant j'ai un fichier .jasper qui fonctionne avec un scriptlet, c'est à dire avec une fonction java que j'ai crée sous iReport et qui est contenue dans un fichier .class
Lorsque mon programme ExportHtml tente de générer le fichier à partir du fichier .jasper avec le scriptlet j'obtiens cette erreur :
Il ne trouve donc pas ma fonction contenue dans mon .class. J'ai essayé d'ajouter le chemin vers le .class dans la variable d'environnement CLASSPATH, mais j'ai toujours la même erreur.
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 Exception in thread "main" net.sf.jasperreports.engine.JRException: Error loading scriptlet class : Switch_avec_dates2Scriptlet at net.sf.jasperreports.engine.fill.JRFillDataset.createScriptlet(JRFillDataset.java:459) at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:572) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1211) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:842) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:791) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:363) at ExportHtml.html.main(html.java:43) Caused by: java.lang.ClassNotFoundException: Switch_avec_dates2Scriptlet at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:179) at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:119) at net.sf.jasperreports.engine.fill.JRFillDataset.createScriptlet(JRFillDataset.java:454) ... 8 more
Connaîtriez-vous un moyen de lui indiquer le chemin de mon fichier .class??
Merci d'avance pour votre aide
Partager