Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > BIRT
BIRT Forum d'entraide sur BIRT (Business Intelligence and Reporting Tools). Avant de poster --> FAQ BIRT,Tutoriels BIRT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/07/2007, 15h07   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 62
Points : 11
Points : 11
Par défaut [2.2.0][Java] Les EventHandlers

Bonjour,

Comme vous le savez, je suis passé de BIRT 2.1 à BIRT 2.2 et je n'en finis pas.
Cette fois-ci, à chaque exécution de rapports, j'ai des "ClassNotFoundException" pour tous les EventHandlers.

Petit rappel : j'exécute mes rapports avec une appli java et l'API du BIRT Engine.

Bon alors, jusqu'à preuve du contraire, les events handlers doivent être dans le classpath. Avec BIRT 1.0, 2.0 et 2.1 ça marche nickel ; avec BIRT 2.2, il ne les trouve plus. Ai-je raté un épisode ? Sur le site officiel de BIRT, tous les exemples sont avec BIRT 2.1 donc bon c'est même pas la peine.

Voici l'exception :

Code :
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
 
java.lang.ClassNotFoundException: package1.package2.DataHandlerAMoi
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
	at org.eclipse.birt.report.engine.executor.ExecutionContext$ApplicationClassLoader.loadClass(ExecutionContext.java:1520)
	at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.getInstance(ScriptExecutor.java:92)
	at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.initEventHandler(DataSetScriptExecutor.java:49)
	at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.initEventHandler(ScriptDataSetScriptExecutor.java:47)
	at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.<init>(DataSetScriptExecutor.java:39)
	at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.<init>(ScriptDataSetScriptExecutor.java:42)
	at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.newScriptDataSet(ModelDteApiAdapter.java:552)
	at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.createDataSetDesign(ModelDteApiAdapter.java:207)
	at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.doDefineDataSet(ModelDteApiAdapter.java:275)
	at org.eclipse.birt.report.engine.adapter.ModelDteApiAdapter.defineDataSet(ModelDteApiAdapter.java:234)
	at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:105)
	at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:94)
	at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:59)
	at org.eclipse.birt.report.engine.internal.executor.emitter.ReportEmitterExecutor.execute(ReportEmitterExecutor.java:78)
	at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:59)
	at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.execute(SuppressDuplciateReportExecutor.java:50)
	at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:184)
	at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:227)
	at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:87)
Est-ce qu'il faut faire une étape en plus pour les EventHandler avec BIRT 2.2 ?

Merci beaucoup !
tibouchou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 15h32   #2
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

Informations forums :
Inscription : janvier 2005
Messages : 7 299
Points : 8 650
Points : 8 650
En fait, DataHandler ou pas, il ne trouve tout simplement pas tes propres classes. Il doit y avoir un problème de CLASSPATH ou autre variable d'environnement.
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 16h06   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 62
Points : 11
Points : 11
Bon, j'en ai assez vu
Cette version est encore une fois un véritable casse-tête

La compatibilité d'une version à l'autre n'est assurée que pour une utilisation simplifiée de BIRT.
Qui plus est, la doc pour les choses compliquées n'est pas mis à jour.

Avec BIRT 2.2, les classLoaders sont complétements chamboulés. A se tirer une balle ... Bon je vais attendre BIRT 3.0 avant de passer 10 jours à l'adapter


Merci pour ta réponse BiM
tibouchou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 16h20   #4
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

Informations forums :
Inscription : janvier 2005
Messages : 7 299
Points : 8 650
Points : 8 650
Cependant, il y a beaucoup dévolutions dans le BIRT 2.2. Tout dépend si tu les utilises.

Les migrations sont toujours un peu difficiles c'est vrai
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 14h36   #5
Invité de passage
 
Inscription : septembre 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 1
Points : 1
Points : 1
Par défaut APPCONTEXT_CLASSLOADER_KEY

Essaye ca :
Code Java :
1
2
3
4
5
6
7
...
IRunAndRenderTask task = engine.createRunAndRenderTask(...);
 HashMap contextMap = new HashMap();
    //for loading eventhandlers
    contextMap.put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, this.getClass().getClassLoader());
task.setAppContext(contextMap);
...
mistermueller est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2007, 09h50   #6
Invité de passage
 
Inscription : août 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 2
Points : 1
Points : 1
Par défaut APPCONTEXT_CLASSLOADER_KEY ?

C'est mon premier dev BIRT. J'ai le même soucis de classNotFound. L'ajout de APPCONTEXT_CLASSLOADER_KEY au niveau du ReportEngine ou du IRunAndRenderTask ne change rien. Birt charge ses classes avec son class loader et non celui de mon appli.
Je vois bien mon classLoader dans les propriétés de la classe interne ApplicationClassLoader de ExecutionContext, mais BIRT ne passe pas par là pour charger l'ODA. re

Une autre idée ou solution ?
fc.59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h29.


 
 
 
 
Partenaires

Hébergement Web