BIM BIM BIM !!
il n'y a que vous qui pouvez m'aider,
la je suis sensé m'adresser à la reine du BI, donc si vous n'avez pas pu m'aider, alors la je suis vraiment mal, j'ai fait le tour de tous les tuto, j'ai même parfois repris bêtement le code tel qu'il est pour que ça marche mais walou !!
portant le but est très simple comme j'ai écrit dans le titre o_O
j'ai créé un joli rapport sous BIRT, avec des graphes et des tableaux, les données sont récupérées à partir d'un serveur SQL, la connexion marche nickel, la génération en HTML est très bien, je peux du coup l'enregistrer sous format pdf.
ce que je veux alors, Miss BIMc'est de pouvoir lancer ce rapport .rptdesign et l'exporter automatiquement chaque lundi matin par exemple, le fichier pdf doir etre archivé quelque part.
bref, voici mon code, c'est presque le même dans tous les tuto mais j'arrive pas à le faire fonctionner (juste ouverture et export du rapport) :
et voici l'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
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 import java.util.logging.Level; import org.eclipse.birt.core.framework.Platform; import org.eclipse.birt.report.engine.api.EngineConfig; import org.eclipse.birt.report.engine.api.EngineConstants; import org.eclipse.birt.report.engine.api.EngineException; import org.eclipse.birt.report.engine.api.IRenderOption; import org.eclipse.birt.report.engine.api.IReportEngine; import org.eclipse.birt.report.engine.api.IReportEngineFactory; import org.eclipse.birt.report.engine.api.IReportRunnable; import org.eclipse.birt.report.engine.api.IRunAndRenderTask; import org.eclipse.birt.report.engine.api.RenderOption; import org.eclipse.birt.report.engine.api.impl.RunAndRenderTask; /** * Simple BIRT Design Engine API (DEAPI) demo. */ public class ExecuteReport { public static void main( String[] args ) throws EngineException { EngineConfig config = new EngineConfig(); IReportEngine engine = null ; try{ config.setBIRTHome( "D:\\Eclipse\\Eclipse_BIRT\\birt-runtime-2_6_1\\ReportEngine" ); config.setLogConfig("c:/birt", Level.FINE); System.out.println("1"); Platform.startup( config ); IReportEngineFactory factory = (IReportEngineFactory) Platform .createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY ); System.out.println("2"); engine = factory.createReportEngine( config ); System.out.println("3"); engine.changeLogLevel( Level.WARNING ); System.out.println("4"); } catch( Exception ex) { System.out.println("catch"); } System.out.println("5"); //Open the report design IReportRunnable design = engine.openReportDesign("D:\\Eclipse\\Eclipse_BIRT\\workspace\\BIRT_Report\\AlarmReport.rptdesign"); System.out.println("6"); //Create task to run and render the report, IRunAndRenderTask task = engine.createRunAndRenderTask(design); //Set parent classloader for engine task.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, RunAndRenderTask.class.getClassLoader()); //Set parameter values and validate //task.setParameterValue("Top Percentage", (new Integer(3)));; //task.setParameterValue("Top Count", (new Integer(5))); //task.validateParameters(); //Save as PDF File IRenderOption options = new RenderOption(); options.setOutputFormat("pdf"); options.setOutputFileName("c:/birt/resultat.pdf"); task.setRenderOption(options); //run and render report task.run(); task.close(); } }
comme vous voyez, il affiche 1 et 2 et s'arrête au niveau de1
2
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/CoreException
at org.eclipse.birt.report.engine.api.impl.ReportEngine.<init>(ReportEngine.java:110)
at org.eclipse.birt.report.engine.api.impl.ReportEngineFactory$1.run(ReportEngineFactory.java:18)
at org.eclipse.birt.report.engine.api.impl.ReportEngineFactory$1.run(ReportEngineFactory.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.birt.report.engine.api.impl.ReportEngineFactory.createReportEngine(ReportEngineFactory.java:14)
at sql.birt.connexion.ExecuteReport.main(ExecuteReport.java:40)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.CoreException
at java.net.URLClassLoader$1.run(Unknown Source)
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)
... 6 more
engine = factory.createReportEngine( config );
il ne trouve pas la classe org/eclipse/core/runtime/CoreException
portant j'ai bien ajouté le org.eclipse.core.runtime.jar
effectivement le .jar que j'ai ajouté ne contient pas cette classe mais je n'arrive pas à la trouver ailleurs, savez vous comment le télécharger ce org.eclipse.core.runtime.jar svp ?
pouvez vous me filer juste un petit bout de code qui crée un ReportEngine ?
excusez moi si c'était long mais j'ai voulu bien expliquer mon problème pour gagner du temps.
versions :
Latest BIRT Report Designer Release Build: 2.6.1 ( All in One )
Latest BIRT Runtime Release Build: 2.6.1
si vous avez vu des erreurs dans mon code merci bien de me les noter
Merci Infiniment d'avance BIM pour ta réponse, et si quelqu'un d'autre peux m'aider ça sera très gentil de sa part.
Cordialement
MRB
Partager