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 :

spring + transaction [Data]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    MOE
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : MOE

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut spring + transaction
    bonjour

    je suis un debutant at je veux faire de la transaction en utilisant spring

    En faite dans mon fichier application_context. xml j 'ai déclaré :

    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
     
     
    	<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>

    et pour le bean :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
      <bean id="compteurDAO" class="fr.data.dao.CompteurDAO" parent="transactionProxy" >
            <property name="transactionAttributeSource">
    			<bean class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"/>
    		</property>
        </bean>
    Par contre je trouve cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'transactionManager' of bean class [fr.data.dao.CompteurDAO]: Bean property 'transactionManager' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
    	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:805)
    	at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:655)
    	at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78)
    	at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:59)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1300)
    	... 90 more


    Merci pour vos reponses

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2008
    Messages : 33
    Par défaut
    Bonjour,
    Il est assez étrange que dans votre déclaration du bean "compteurDAO" (que j'imagine vous avez codé vous même), vous utilisiez la propriété transactionAttributeSource qui est plutôt réservé à un transactionInterceptor si je ne me trompe pas. Peut-être pourriez-vous décrire un peu plus ce que vous désirez faire afin que l'on vous aide?

  3. #3
    Membre confirmé
    Profil pro
    MOE
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : MOE

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut
    En faite mon probléme c 'est que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Invalid property 'transactionManager' of bean class [fr.data.dao.CompteurDAO]: Bean property 'transactionManager' is not writable or has an invalid setter method. Doe
    Par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <property name="transactionAttributeSource">
    			<bean class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"/>
    		</property>
    je le déclare parce que je vais utiliser les annotations dans les DAO afin de gerer les annotations

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2008
    Messages : 33
    Par défaut
    Si vous voulez simplement déclarer que vous allez utiliser les annotations, supprimer de votre applicationContext la declaration du bean 'compteurDAO' et ajoutez la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tx:annotation-driven transaction-manager="transactionManager" />
    qui indique que les annotations sont utilisées et que votre intercepteur est 'transactionManager'.
    Il me semble bizarre d'utiliser votre façon de faire (en tout cas si vous souhaitez vous baser sur du spring 2.5), puisque maintenant, il n'est plus nécessaire de déclarer tous les beans qui vont utiliser les annotations 1 à 1.

  5. #5
    Membre confirmé
    Profil pro
    MOE
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : MOE

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut
    ça ne marche pas , aussi puisque j utilise spring 2.0 , je souhaite utiliser la notion du proxy et le passer dans le bean
    Si qcq peut me donner juste une piste pour savoir d' ou vient l'erreur de transactionManager

    Merci

  6. #6
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Salut,
    Ben on dirait que tu n'as pas code de setter pour l'attribut transacionManager dans ton DAO

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/11/2008, 14h47
  2. [Data] Spring, transactions et threads
    Par cecile_31 dans le forum Spring
    Réponses: 8
    Dernier message: 16/07/2008, 13h47
  3. Réponses: 1
    Dernier message: 12/06/2006, 19h02
  4. [ spring ] transaction tomcat
    Par hocinema dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 11/10/2005, 21h04

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