Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Jasper
Jasper Forum d'entraide sur Jasper Reports. Avant de poster --> FAQ Jasper, Tutoriels Jasper
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 21/07/2011, 22h21   #1
oum
Membre à l'essai
 
Développeur Java
Inscription : avril 2006
Messages : 43
Détails du profil
Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : avril 2006
Messages : 43
Points : 20
Points : 20
Par défaut jasperreport compatible avec jpa ?

Bonjour,

je voudrais créer des rapports à partir de mon application web (jsf, spring, jpa, maven) pour les afficher en pdf. C'est pourquoi j'ai créé des éditions jasper avec ireport.
Maintenant je voudrais les appeler à partir de mon application java.
J'ai suivi le tutoriel qui se trouve sur ce site à la seule différence que les versions sont plus récentes et que j'utilise Maven pour chercher les jar dont j'ai besoin.
Mais je n'arrive pas à compiler depuis que j'ai ajouté les jar de jasperreport et j'ai dû les retirer.
J'ai un message d'erreur un peu bizarre qui me dit qu'il n'y a pas de transactionManager (ce qui est faux).
Je me demande si jasperreport est compatible avec jpa.
Est-ce que quelqu'un a réussi à combiner jpa et jasperreport ?

oum
oum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 15h56   #2
oum
Membre à l'essai
 
Développeur Java
Inscription : avril 2006
Messages : 43
Détails du profil
Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : avril 2006
Messages : 43
Points : 20
Points : 20
Par défaut précisions

Lorsque j'ajoute par maven le jasperreport.jar et que je génère mon war, ça va.
Au lancement du serveur le déploiement ne se fait pas bien. Et l'application (qui fonctionnait avant) ne peut plus être lancée.

On dirait que pour une raison qui m'échappe, le compilateur ou l'éditeur de liens décide de supprimer tous les singletons créés précédemment, et ensuite tombe sur une exception qui se plaint de ne pas avoir trouvé le transaction manager (un des singletons).
Extrait de log pour illustration

Citation:
2011-07-22 15:06:01,687 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] -
Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@500fbfa2: defining beans
[propertyConfigurer,app_context,authenticator,servletAuthenticationService,OfflineFixedUserAuthenticationService,
exceptionServiceFactory,org.springframework.aop.config.internalAutoProxyCreator,domainMethods,
org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,txAdvice, domainService,paginatorDomainService,org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor#0,
txManager,entityManagerFactory,JDBCDataSource,jpaVendorAdapter,jpaProperties,daoService,cacheManager,
i18nService,smtpService,smtpFromAddress,smtpIntercept,smtpTestAddress,smtpServer,abstractI18nAwareBean,
abstractApplicationAwareBean,abstractJsfMessagesAwareBean,abstractDomainAwareBean,applicationService,
tagsConfigurator,userPaginator,userBean,welcomeController,simpleController,treatmentController,sessionController,
abstractContextAwareController,exceptionController,salleController,epreuveController,concoursEcritController,
editionController,localeConverter]; root of factory hierarchy
2011-07-22 15:06:01,696 INFO [org.springframework.cache.ehcache.EhCacheManagerFactoryBean] - Shutting down EHCache CacheManager
2011-07-22 15:06:01,706 ERROR [org.springframework.web.context.ContextLoader] - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'txAdvice': Cannot resolve reference to bean 'txManager' while setting bean property 'transactionManager';
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'txManager' defined in class path resource [properties/dao/dao.xml]: Cannot resolve reference to bean 'entityManagerFactory' while setting bean property 'entityManagerFactory';
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [properties/dao/dao.xml]: Invocation of init method failed;
nested exception is java.lang.NoClassDefFoundError: org/apache/commons/collections/map/LRUMap
est-ce un probleme jasper ou maven ?
Fichiers attachés
Type de fichier : txt log-jetty.txt (41,5 Ko, 1 affichages)
oum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 16h38   #3
oum
Membre à l'essai
 
Développeur Java
Inscription : avril 2006
Messages : 43
Détails du profil
Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : avril 2006
Messages : 43
Points : 20
Points : 20
Bon, j'avance toute seule ?

J'ai trouvé qu'il y a un conflit entre jsf 2 qui utilise commons-collections:3.2 et jasperreport qui dans sa version la plus récente (4.0) utilise commons-collections:2.1.
Maven résout le conflit en prenant la version la plus ancienne.
Le problème est que dans la version 3.2 on trouve:
org.apache.commons.collections.map.LRUMap

et dans la version 2.1 on trouve:
org.apache.commons.collections.LRUMap !
Cette classe a changé de place !
Je ne vois pas comment m'en sortir à moins que jasper nous sorte une nouvelle version très très vite.

Existe -t-il un autre outil ?
oum
oum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2011, 20h16   #4
oum
Membre à l'essai
 
Développeur Java
Inscription : avril 2006
Messages : 43
Détails du profil
Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : avril 2006
Messages : 43
Points : 20
Points : 20
Par défaut une piste

salut tout le monde,

alors je continue d'avancer toute seule, mais pour ceux que cela intéresse, j'ai trouvé une piste.
Je ne peux pas la tester sur mon appli car je suis en congé, cela attendra mon retour, mais il semble que cela soit efficace quand même.

puisque j'utilise Maven2 pour chercher mes dépendances il faut configurer comme indiqué sur cette url http://mojo.codehaus.org/jasperrepor...gin/usage.html

Voici ce que ça donne sur un miniprojet exigeant commons-collections.3.2.1.jar:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>jasperreports-maven-plugin</artifactId>
				<version>1.0-beta-2</version>
				<configuration>
					<outputDirectory>src/main/jasperreports/compiled</outputDirectory>
					<xmlValidation>true</xmlValidation>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>compile-reports</goal>
						</goals>
						<phase>compile</phase>
					</execution>
				</executions>
				<dependencies>
					<dependency>
						<groupId>net.sf.jasperreports</groupId>
						<artifactId>jasperreports</artifactId>
						<version>4.0.1</version>
						<type>jar</type>
						<scope>compile</scope>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>
	<repositories>
	</repositories>
	<dependencies>
		<dependency>
			<groupId>net.sf.jasperreports</groupId>
			<artifactId>jasperreports</artifactId>
			<version>4.0.1</version>
			<type>jar</type>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.1</version>
		</dependency>
	</dependencies>
Voilà, dès que je peux tester et vérifier que ça marche, je mettrai la balise RESOLU
oum
oum 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 07h08.


 
 
 
 
Partenaires

Hébergement Web