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 2.5.6 - NoSuchBeanDefinitionException [Framework]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut Spring 2.5.6 - NoSuchBeanDefinitionException
    Bonjour,

    Je sais qu'il y a deja des milliers de sujets sur NoSuchBeanDefinitionException, mais je n'ai pas trouve exactement en rapport avec le mien. En plus j'ai une question de base qui peut peut-etre expliquer mon erreur.

    Je travaille avec Spring 2.5.6

    En gros, dans mes logs, jai donc cette exception:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    20100518 13:09:19,691 INFO  [services.CatFlowDAODispatcher] getFlowDAORegion - bra has not implemented CatDAORegion org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'catFlowDAOBRA' is defined
    La methode en question est :
    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
     
    	private static String DAO_BEANNAME = "catFlowDAO";
     
    public CatFlowDAORegion getFlowDAORegion(String country){
    		CatFlowDAORegion flowDAORegion = null;
    		StringBuilder beanCountry = new StringBuilder(DAO_BEANNAME).append(country.toUpperCase());
     
    		try{
    			flowDAORegion = (CatFlowDAORegion)this.beanFactory.getBean(beanCountry.toString());
     
    		}
    		catch(NoSuchBeanDefinitionException e){
    			logger.info("getFlowDAORegion - " + country + " has not implemented CatDAORegion "+ e);
    		}
     
    		return flowDAORegion;
    	}
    Pourtant, j'ai bien une classe qui correspond a ce bean:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @Component(value="catFlowDAOBRA")
    public interface CatFlowBRADAO extends CatFlowDAORegion {
    ...
    }
    Alors, ma question est: est-ce quon peut definir un bean sur une interface? ou ce doit obligatoirement etre une implementation??

    Sachant que jai bien une classe qui implemente cette interface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class CatFlowBRADAOImpl implements Serializable, CatFlowBRADAO {
    ....	
    }
    Pour info, lorsque je mettais l'annotation sur la classe CatFlowBRADAOImpl, je navais aucun probleme (je rajoutais alors dans la liste des implementations de mon CatFlowBRADAOImpl la classe CatFlowDAORegion).

    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné
    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
    Par défaut
    Bonjour,

    Pour répondre à ta principale question,
    est-ce quon peut definir un bean sur une interface? ou ce doit obligatoirement etre une implementation??
    Je ne pense pas que l'héritage de l'annotation de déclaration de Bean ait été prévue par Spring.
    @Component n'est pas de type Inherited, aveu de sémantique je pense.
    En outre, la javadoc de l'annotation Component précise bien le terme "classe" pour référencer la cible.

    Si la déclaration d'annotation distinguait la classe de l'interface en tant que type de cible, cela éviterait pas mal d'erreurs à l'exécution...

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut
    Merci. Desole pour le temps de reponse, mais ca m'aide a comprendre.
    Merci bien!

    Je ne mets pas en resolu, au cas où qqn apporte un complement de reponse.

    Nicolas.

  4. #4
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Tu dois absolument mettre l'annotation @Component sur une implémentation et non pas sur l'interface.
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut
    Merci pour la réponse je le mets en résolu! :-)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/12/2011, 10h13
  2. Réponses: 1
    Dernier message: 12/05/2008, 12h01
  3. Réponses: 5
    Dernier message: 25/05/2005, 21h16
  4. [Data] Développement avec la framework spring et ibatis
    Par ujoodha dans le forum Spring
    Réponses: 1
    Dernier message: 07/03/2005, 13h20

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