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:
La methode en question est :
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
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
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; }
Alors, ma question est: est-ce quon peut definir un bean sur une interface? ou ce doit obligatoirement etre une implementation??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 @Component(value="catFlowDAOBRA") public interface CatFlowBRADAO extends CatFlowDAORegion { ... }
Sachant que jai bien une classe qui implemente cette interface :
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public class CatFlowBRADAOImpl implements Serializable, CatFlowBRADAO { .... }
Merci d'avance pour votre aide.
Partager