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 :

Exception trouvé org.springframework.beans.factory.NoSuchBeanDefinitionException


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 35
    Points : 22
    Points
    22
    Par défaut Exception trouvé org.springframework.beans.factory.NoSuchBeanDefinitionException
    Je suis entrain de developper une application utilisant spring et jsf.
    J'utilise la notion de facade et les dao ce que j'ai c'est ceci
    1- 8 Interfaces fascade1, fascade2 ....
    2- 8 classe les implémentant fascade1Impl,....
    1- 8 Interfaces dao1, dao2 ....
    2- 8 classe les implémentant dao1Impl,....
    Ensuite j'utilise les injection de dépendance pour connecter ma fascade au dao
    Mon pb est maintenant cette exception



    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'AdresseDAO': Injection of resource fields failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [javax.transaction.UserTransaction] is defined: Unsatisfied dependency of type [interface javax.transaction.UserTransaction]: expected at least 1 matching bean
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessAfterInstantiation(CommonAnnotationBeanPostProcessor.java:292)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:959)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:671)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:610)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:499)
    ... 89 more
    Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [javax.transaction.UserTransaction] is defined: Unsatisfied dependency of type [interface javax.transaction.UserTransaction]: expected at least 1 matching bean
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:613)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:431)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:409)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:537)
    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:180)
    at org.springframework.beans.factory.annotation.InjectionMetadata.injectFields(InjectionMetadata.java:105)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessAfterInstantiation(CommonAnnotationBeanPostProcessor.java:289)
    ... 102 more
    |#]

    [#|2009-01-14T00:40:07.925+0000|SEVERE|sun-appserver9.1|org.apache.catalina.core.StandardContext|_ThreadID=18;_ThreadName=httpWorkerThread-4848-0;_RequestID=b4a0d34b-2bfa-4503-9e0f-6b814b174920;|PWC1306: Startup of context /xeweul failed due to previous errors|#]

    [#|2009-01-14T00:40:07.940+0000|INFO|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=18;_ThreadName=httpWorkerThread-4848-0;|PWC1412: WebModule[/xeweul] ServletContext.log():Closing Spring root WebApplicationContext|#]

  2. #2
    Expert éminent
    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
    Points : 7 679
    Points
    7 679
    Par défaut
    Bah l'exception est claire : il existe 0 ou plus que 1 beans de type javax.transaction.UserTransaction, Spring ne peut donc pas créer ton bean AddresseDao dans ce cas.

    Sans voir ton appCtxt, on peut pas faire plus

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par djo.mos Voir le message
    Bah l'exception est claire : il existe 0 ou plus que 1 beans de type javax.transaction.UserTransaction, Spring ne peut donc pas créer ton bean AddresseDao dans ce cas.

    Sans voir ton appCtxt, on peut pas faire plus
    de fait…

    donc soit vous avez fait une simple erreur en définissant plusieurs beans de gestion des transactions…

    soit vous avez réellement besoin de plusieurs gestionnaires de transactions différents pour différents DAOs dépendant de différentes Data Sources…
    et dans ce cas, si vous utilisez les annotations, sachez que vous ne pouvez pas utilisez les annotations JPA @Transactional pour les 2 !
    il faudra que l'un des 2 DAOs soit de classe "org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
    avec une property "transactionManager" et une property "target" qui sera le "vrai" DAO…

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 35
    Points : 22
    Points
    22
    Par défaut Voici mon applicationContext
    Comme vous me l'avez demandé voici mon applicationContext


    Code xml : 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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="
           <a href="http://www.springframework.org/schema/aop" target="_blank">http://www.springframework.org/schema/aop</a> <a href="http://www.springframework.org/schema/aop/spring-aop-2.5.xsd" target="_blank">http://www.springframework.org/schem...ng-aop-2.5.xsd</a>
           <a href="http://www.springframework.org/schema/beans" target="_blank">http://www.springframework.org/schema/beans</a> <a href="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" target="_blank">http://www.springframework.org/schem...-beans-2.5.xsd</a>
           <a href="http://www.springframework.org/schema/context" target="_blank">http://www.springframework.org/schema/context</a> <a href="http://www.springframework.org/schema/context/spring-context-2.5.xsd" target="_blank">http://www.springframework.org/schem...ontext-2.5.xsd</a>
           <a href="http://www.springframework.org/schema/jee" target="_blank">http://www.springframework.org/schema/jee</a> <a href="http://www.springframework.org/schema/jee/spring-jee-2.5.xsd" target="_blank">http://www.springframework.org/schem...ng-jee-2.5.xsd</a>
    	   <a href="http://www.springframework.org/schema/tx" target="_blank">http://www.springframework.org/schema/tx</a> http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
     
     
        <bean id="propertyConfigurer"
              class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
              p:location="/WEB-INF/jdbc.properties" />
     
        <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
              p:dataSource-ref="dataSource">
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.TopLinkJpaVendorAdapter"
                      p:databasePlatform="${jpa.databasePlatform}" p:showSql="${jpa.showSql}"/>           
            </property>
            <property name="loadTimeWeaver">
                <bean class="org.springframework.instrument.classloading.glassfish.GlassFishLoadTimeWeaver"/>
            </property>
        </bean>     
     
        <bean id="dataSource"
              class="org.springframework.jdbc.datasource.DriverManagerDataSource"
              p:driverClassName="${jdbc.driverClassName}"
              p:url="${jdbc.url}"
              p:username="${jdbc.username}"
              p:password="${jdbc.password}" />
     
        <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
        <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
        <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" />
     
        <tx:annotation-driven />
     
        <context:annotation-config/>
        <aop:aspectj-autoproxy/>
        <bean id="FacadeAdresse" class="service.fascade.FacadeAdresseImpl"/>
    	<bean id="FacadeAnnonce" class="service.fascade.FacadeAnnonceImpl"/>
    	<bean id="FacadeCategorie" class="service.fascade.FacadeCategorieImpl"/>
    	<bean id="FacadeClient" class="service.fascade.FacadeClientImpl"/>
    	<bean id="FacadeMessage" class="service.fascade.FacadeMessageImpl"/>
    	<bean id="FacadePays" class="service.fascade.FacadePaysImpl"/>
    	<bean id="FacadePhoto" class="service.fascade.FacadePhotoImpl"/>
    	<bean id="FacadeSequence" class="service.fascade.FacadeSequenceImpl"/>
    	<bean id="FacadeVille" class="service.fascade.FacadeVilleImpl"/>
        <bean id="AdresseDAO" class="service.dao.AdresseDAOImpl"/>
        <bean id="AnnonceDAO" class="service.dao.AnnonceDAOImpl"/>
        <bean id="CategorieDAO" class="service.dao.CategorieDAOImpl"/>
        <bean id="ClientDAO" class="service.dao.ClientDAOImpl"/>
        <bean id="MessageDAO" class="service.dao.MessageDAOImpl"/>
        <bean id="PaysDAO" class="service.dao.PaysDAOImpl"/>
        <bean id="PhotoDAO" class="service.dao.PhotoDAOImpl"/>
        <bean id="SequenceDAO" class="service.dao.SequenceDAOImpl"/>
        <bean id="VilleDAO" class="service.dao.VilleDAOImpl"/>
     
    </beans>

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    dans persistence.xml vous avez bien :

    <persistence-unit … transaction-type="JTA" />

    ?

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 35
    Points : 22
    Points
    22
    Par défaut Mon fichier Persistence
    Salut

    Voici mon fichier de persistence

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
    <persistence-unit name="annoncePU" transaction-type="JTA">
    <jta-data-source>jdbc/annonce</jta-data-source>
    <properties/>
    </persistence-unit>
    </persistence>

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 35
    Points : 22
    Points
    22
    Par défaut Eclairez moi djo.mos
    djo.mos

    Merci pour ta réponse mais vraiement je veux que vous m'eclaircissez d'avantage.

    Je n'ai pas compris grand chose sur vos indication

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par xadimousalih Voir le message
    djo.mos

    Merci pour ta réponse mais vraiement je veux que vous m'eclaircissez d'avantage.

    Je n'ai pas compris grand chose sur vos indication
    votre applicationContext n'a qu'un seul transactionManager donc le problème n'est pas si évident que cela…

    soit vous chargez d'autres XML que vous ne nous montrez pas…
    soit c'est encore plus subtil…

    lancez l'application en mode debug et mettez un point d'arrêt dans Spring là où est générée "NoSuchBeanDefinitionException"…
    pour déterminer exactement où il trouve un autre transactionManager…

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/07/2012, 13h40
  2. [JSF] org.springframework beans factory BeanCreationException
    Par yLaplace dans le forum Spring Web
    Réponses: 1
    Dernier message: 09/12/2010, 14h48
  3. Réponses: 0
    Dernier message: 29/04/2010, 14h50
  4. Réponses: 2
    Dernier message: 22/04/2009, 14h06
  5. Réponses: 2
    Dernier message: 31/05/2007, 12h19

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