IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Problème avec tutoriel hibernate-spring-tapestry [Data]


Sujet :

Spring Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut Problème avec tutoriel hibernate-spring-tapestry
    Bonjour, étant débutant en hibernate -spring, j'ai tenté de suivre le tutoriel de baptiste meurant sur le développement d'une application blanche avec tapestry. mais lorsque j'essaye de l'exécuter sur le serveur voici l'erreur qu'il me ressort :

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userManagerTarget' defined in ServletContext resource [/WEB-INF/ApplicationContext.xml]: Cannot resolve reference to bean 'userDao' while setting bean property 'userDao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in ServletContext resource [/WEB-INF/ApplicationContextDao.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/ApplicationContextDao.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
    Et voici le fichier ApplicationContextDao.xml qui ncontient l'initialisation du bean sessionFactory :

    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
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     
    <!-- Application context DAO layer -->
     
    <beans>
    	<!-- General  -->
    	<bean id="userDao" class="com.web.domain.dao.hibernate3.UserDaoImpl">
    		<property name="sessionFactory">
    			<ref bean="sessionFactory" />
    		</property>
    	</bean>
     
    	<!-- sessionFactory  -->
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="configLocation">
    			<value>classpath:hibernate.cfg.xml</value>
    		</property>
    		<property  name="configurationClass">
      			 <value>org.hibernate.cfg.AnnotationConfiguration</value>
    		</property>
    	</bean>
     
    	<!--  Configuration des transactions -->
    	<!-- Configuration du proxy général -->
    	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="sessionFactory" ref="sessionFactory"/>
    	</bean>
    	<bean id="transactionProxy" abstract="true"
    		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    		<property name="transactionManager">
    			<ref bean="transactionManager"/>
    		</property>
    		<property name="transactionAttributes">
    			<props>
    				<prop key="insert*">PROPAGATION_REQUIRED</prop>
    				<prop key="update*">PROPAGATION_REQUIRED</prop>
    				<prop key="save*">PROPAGATION_REQUIRED</prop>
    				<prop key="*">PROPAGATION_REQUIRED, readOnly</prop>
    			</props>
    		</property>
    	</bean>
    </beans>
    Et le fichier ApplicationContext.xml :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     
    <beans>
    	<bean id="userManagerTarget" class="com.web.service.impl.UserManagerImpl">
    		<property name="userDao">
    			 <ref bean="userDao"/>
    		</property>
    	</bean>
    	<bean id="userManager" parent="transactionProxy">
    		<property name="target">
    			<ref bean="userManagerTarget" />
    		</property>
    		<property name ="transactionAttributeSource">
    			<bean class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"/>
    		</property>
    	</bean>
    </beans>
    Apparemment l'erreur viendrais de ma lib asm.. j'ai pourtant bien vérifié d'avoir la même version que celle utilisée dans le tutoriel...

    Donc voilà, je suis ouvert à toute proposition (euh.. enfin pas toutes hein!! seulement les propositions techniques )

    Et je vous remercie d'avance de votre aide ^^

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Salut,

    Vu que ce n'est pas ton propre code qui appelle le constructeur de la classe org.objectweb.asm.ClassWriter, ton prob est surement une incompatibilité de lib entre celle de spring et d'asm.

    Tu as peut etre la meme lib asm mais est ce que tu as aussi les même libs Spring que dans le tuto?
    Si ce n'est pas le cas et que cette version se base sur une api différente d'asm, rien d'étonnant.

    Je ne connais pas le tuto dont tu fais référence, mais avec la version 2.5 (avant je ne sais pas) de Spring, tu n'as pas besoin d'importer la lib asm, elle est packagée dans la lib spring-core. Donc pas de souci de ce genre.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    Bon j'ai suivis ton conseil et j'ai tenté avec spring 2.5 en supprimant asm, voici l'erreur qu'il me ressort :

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userManagerTarget' defined in ServletContext resource [/WEB-INF/ApplicationContext.xml]: Cannot resolve reference to bean 'userDao' while setting bean property 'userDao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in ServletContext resource [/WEB-INF/ApplicationContextDao.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/ApplicationContextDao.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type
    Du coup coup de colère j'ai téléchargé les sources du tuto et j'ai repris les libs de ces sources... comme ça pas de problèmes de compatibilité entre versions, tout marche bien maintenant . En fait j'aurais du faire ça dés le début ^^

    Enfin merci de ton aide!!!!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Arf

    Tu t'en es tiré c'est le principal
    Cette classe est normalement tirée par Cglib, elle même tirée par Hibernate 3.
    Tu utilises Hibernate 3 ?

    Quand je parle de 'tirée', je fais référence à Maven.
    Je ne sais pas si tu l'utilises, mais ca aide bien dans ces cas tordus

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    Effectivement j'utilise hibernate 3 mais pas maven (pour un petit tuto comme ça ça me parrassait équivalent à enfoncer un clou au marteau piqueur ^^)

    Voila le lien du tuto ça peut toujours servir : http://baptiste-meurant.developpez.c...ing-hibernate/

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    (pour un petit tuto comme ça ça me parrassait équivalent à enfoncer un clou au marteau piqueur ^^)
    Ca se discute

    J'ai vu le tuto : vi petit mais bonjour les dépendances : Spring-Hibernate-Tapestry.
    Une des grosses valeur ajoutée de Maven c'est de résoudre les dépendances pour une même librairie (t'as pas à les connaitre, les chercher et les télécharger toi même) alors perso je le laisse faire dès qu'on sort des libs du jdk
    Allez va chercher Lycos... euh Maven

  7. #7
    En attente de confirmation mail
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut hibernatetemplate+ criteria
    au fait , j'ai une tables (Vp) résultante d'une jointure de 3 class (Vues , Role , Attribut), au fait je veux créer une méthode qui me retourne la Vp correspondante pour un tuple(vue, role, attribut) précis la question comment y est faire avec hibernatetemplate + hql
    si quelqu'un puisse me répondre ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Tu dois utiliser la méthode find(String queryString) d'hibernateTemplate.
    Ensuite pour valoriser queryString, tout dépend de tes critères de sélection (id, champ x etc...) et du sens des relations entre les entités.

    Tu peux regarder la :
    http://docs.jboss.org/hibernate/core.../queryhql.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/11/2011, 18h50
  2. Problème avec tutoriel sur Template
    Par bruce207 dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2011, 12h56
  3. problème avec un package spring dans maven
    Par lahmar.abdel1 dans le forum Spring
    Réponses: 4
    Dernier message: 09/04/2010, 16h44
  4. [Batch] Réaliser un batch sur une application hibernate/spring/tapestry
    Par hyunakel dans le forum Spring
    Réponses: 1
    Dernier message: 20/08/2009, 17h11
  5. Réponses: 8
    Dernier message: 26/08/2006, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo