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 30/05/2007, 16h01   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 37
Points : 10
Points : 10
Par défaut [2.1.2] Plusieurs rapports sans redémarrer Tomcat

Bonjour à tous...
ma nouvelle question est la suivante:

Mon application a une interface et selon les données qu'on met, on fait un rapport different.
Je voudrais faire plusieurs rapports en changeant les données de l'interface.
Le problème c'est que si je veux faire le deuxième rapport je dois redémarrer le serveur web (shutdown/startup). Je voudrais savoir comment je dois faire pour éviter ça et faire tous les rapports sans redémarrer.

J'attends vos réponses.
Merci
locuelas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 17h01   #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
Bonjour,

Soit ton serveur est mal installé, soit ton application est mal conçue, au choix

Désolée...
__________________
__~{@ 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 31/05/2007, 09h48   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 37
Points : 10
Points : 10
Bonjour,
je crois que le serveur est bien configuré, alors je dois faire quelques modifications dans mon application...

Mon aplication a une page html (en fait c'est un formularie pour prendre des données). Après je prendre tous les données dans la servlet, j'appelle une clase pour faire le dessin et finalment j'appelle d'autre clase pour faire le HTML/PDF.

Qu'est-ce que je devrais reviser?? La servlet? La page html?

En fait si j'essaie de faire un deuxième rapport, ce que j'ai est la page html blanche (il n'y a rien).

Si tu as besoin plus d'explications ou quelque morceau du code dis-moi

Merci beaucoup.
locuelas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 09h59   #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
Tu as une page blanche au moment de la génération du deuxième rapport ou au moment du chargement du formulaire ?

Si c'est au moment de la génération, tu as sûrement une exception générée et pour cela, il faudrait que tu puisses voir la console ou les logs en espérant que tu loggues les exceptions

Ca peut être notemment dû au fait que tu essayes de générer ton fichier sous le nom (par exemple) fichier.pdf alors que le premier portait le même nom et qu'il est ouvert.
__________________
__~{@ 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 31/05/2007, 10h20   #5
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 37
Points : 10
Points : 10
Oui tu as raison,
j'ai une exception NullPointerException. C'est due quand j'essaie de créer le "data source" (quand je declare le paramètre "odaURL")
J'ai vous ajouté l'exception.

Merci pour toute l'information.
Images attachées
Type de fichier : jpg exception.JPG (77,3 Ko, 8 affichages)
locuelas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 11h22   #6
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
Je suis déjà plus rassurée !

Bon déjà, premier point mais très important, les classes en Java commencent par une majuscule et le nom du .java doit avoir le même nom que la classe principale (public) du fichier. Donc renomme createDesign en CreateDesign

Ensuite pourrait-on voir le code de la méthode buildDataSource() de CreateDesign et pourrait-tu mettre en évidence la ligne correspondant à la ligne 82 de ton fichier ?

__________________
__~{@ 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 31/05/2007, 11h52   #7
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 37
Points : 10
Points : 10
J'ai d'autre application qui fait des rapports aussi, mais seulement des tables (pas de chart) et cette application-là je la peux executer plusieurs fois sans problème et elle utilise les mêmes methodes buildDataSource et buildDataSet. Alors, je ne sais pas si l'exception est due aux charts (je crois pas, mais je suis pas sûre), à la structure de l'aplication (les clases) ou à aucune...

Voici le code. L'exception est à la ligne en rouge. C'est parce que "dsHandle" est null (mais pas "designFactory")
Remarque: designFactory est une variable globale.

Merci BiM

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
	void buildDataSource( ) throws SemanticException {
				
		OdaDataSourceHandle dsHandle = designFactory.newOdaDataSource(
				"Rapport Data Source", "org.eclipse.birt.report.data.oda.jdbc" );
		
		dsHandle.setProperty( "odaDriverClass",	"com.mysql.jdbc.Driver");
		dsHandle.setProperty( "odaURL", "jdbc:mysql://localhost/prueba" );
		dsHandle.setProperty( "odaUser", "locuelas" );
		dsHandle.setProperty( "odaPassword", "birt" );
		
		designHandle.getDataSources( ).add( dsHandle );

	}
locuelas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 12h38   #8
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 37
Points : 10
Points : 10
Bonjour, j'ai trouvé la solution BiM...
Le problème c'est que à la fin de ma clase principal (la clase qui a le servlet) j'appellais à "BirtEngine.destroyBirtEngine();"

J'ai effacé cette ligne et maintenant ça marche!
Je comprends pas alors à quoi ça sert la fonction destroyBirtEngine...

Merci quand même
locuelas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 12h00   #9
Membre du Club
 
Inscription : avril 2004
Messages : 116
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2004
Messages : 116
Points : 60
Points : 60
Envoyer un message via AIM à mediateur59 Envoyer un message via MSN à mediateur59 Envoyer un message via Yahoo à mediateur59
Peux-tu mettre en fichier attaché ton code car j'essaie de modifier mon datasource en fonction de mon serveur de deploiement (Prod, Backup...)
mais je ne m'en sors pas avec les ODA..
je ne trouve aucun exemple complet sur le sujet

Merci d'avance Cédric
mediateur59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 16h46   #10
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 37
Points : 10
Points : 10
Bonjour,
le code que j'ai utilisé pour créer le dataSource avec Oda est le suivante:

Code Java :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
OdaDataSourceHandle buildDataSource( ) throws SemanticException {
                OdaDataSourceHandle dsHandle = designFactory.newOdaDataSource(
				"nombre_Data_Source", "org.eclipse.birt.report.data.oda.jdbc" );
 
		dsHandle.setProperty( "odaDriverClass",	"com.mysql.jdbc.Driver");
		dsHandle.setProperty( "odaURL", "jdbc:mysql://ton_host/base_de_donnees" );
		dsHandle.setProperty( "odaUser", "user_name" );
		dsHandle.setProperty( "odaPassword", "pass" );
 
		return dsHandle;
}

Remarque: designFactory est une instance d'ElementFactory.
Remarque: après ajoute dsHandle à ton instance de "ReportDesignHandle"

C'est ça ce que tu as besoin?
locuelas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2007, 17h05   #11
Membre du Club
 
Inscription : avril 2004
Messages : 116
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2004
Messages : 116
Points : 60
Points : 60
Envoyer un message via AIM à mediateur59 Envoyer un message via MSN à mediateur59 Envoyer un message via Yahoo à mediateur59
Voilà le debut de mon code. Justement je ne sais pas comment recupérer une instance d'ElementFactory. et ReportDesignHandle. Je galère avec tout les objets je m'y perds et mon anglais est moyen :-(

J'ai oublie de dire que j'ai une instance dans Birt qu'y s'apelle bdd dans tout mes rapports

Code java :
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
 
ServletContext sc = cycle.getRequestContext().getServlet().getServletContext();
					IReportEngine birtReportEngine = BirtEngine.getBirtEngine(sc);
					//setup image directory
					HTMLRenderContext renderContext = new HTMLRenderContext();
					HashMap contextMap = new HashMap();
					contextMap.put( EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, renderContext );
 
					IReportRunnable design;
					try
					{
						design = birtReportEngine.openReportDesign( cycle.getRequestContext().getServlet().getServletContext().getRealPath("/Reports")+"/"+reportName );
//						/*
//						 * data source
//						 */
//						OdaDataSourceHandle odaDataSourceHandle = factory.newOdaDataSource(","org.eclipse.birt.report.data.oda.jdbc");
//				        odaDataSourceHandle.setProperty("odaDriverClass",driver);
//				        odaDataSourceHandle.setProperty("odaURL",url);
//				        odaDataSourceHandle.setProperty("odaUser",user);
//				        odaDataSourceHandle.setProperty("odaPassword",password);
//				        
//						OdaDataSourceHandle designHandle = design.getDesignHandle();
//						design.get
//						OdaDataSourceHandle dataSourceHandle = (OdaDataSourceHandle) designHandle.
//						.findDataSource( "dataSource" );//$NON-NLS-1$
//						dataSourceHandle.setProperty( "odaUser", "NewUser" );//$NON-NLS-1$ //$NON-NLS-2$
//						dataSourceHandle.setProperty( "odaPassword", "NewPassword" );//$NON-NLS-1$ //$NON-NLS-2$
//						dataSourceHandle.setProperty( "odaURL", "NewURL" )
//						openReportDesign("test.rptdesign"); 
//						ReportDesignHandle report = (ReportDesignHandle) design.getDesignHandle( ); 
//						OdaDataSourceHandle dataSourceHandle=(OdaDataSourceHandle) report.findDataSource("bdd"); 
//						dataSourceHandle.setProperty( "odaUser", "investissement" );
//						dataSourceHandle.setProperty( "odaPassword", "ctiv" );
//						dataSourceHandle.setProperty( "odaURL", "jdbc:postgresql://190.1.128.40:5432/investissement?charSet=LATIN9" );
 
 
						//create task to run and render report
						IRunAndRenderTask task = birtReportEngine.createRunAndRenderTask( design );
						task.setAppContext( contextMap );
mediateur59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 12h21   #12
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 37
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 37
Points : 10
Points : 10
Tu veux exécuter ton application sur quelque serveur web? Lequel?

Pour recupérer l'instance de ReportDesignHandle
Code :
1
2
 
designHandle = (ReportDesignHandle) design.getDesignHandle( );
Pour recupérer l'instance de ElementFactory
Code :
1
2
 
designFactory = designHandle.getElementFactory( );
Remarque: design est une instance de IReportRunnable. C'est l'instance obtenue de l'ouverture de ton fichier *.rptdesign
locuelas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h59.


 
 
 
 
Partenaires

Hébergement Web