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.