Je reviens avec plus ou moins le même problème que précédemment mais en ciblant un peu mieux mon soucis.
J'ai une interface qui normalement si j'ai bien compris devrait créer un proxy qui devrait être un bean :
J'ai crée une classe Personne tout a fait classique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 package fr.npa.repository; import org.springframework.data.jpa.repository.JpaRepository; import fr.npa.annuaire.domain.Personne; public interface PersonneRepository extends JpaRepository<Personne, Integer>{ }
Et une classe de test unitaire :
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
22
23
24
25
26
27
28
29
30
31
32 package fr.npa.annuaire.domain; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Personne{ @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String prenom; private String nom; public String getPrenom() { return prenom; } public void setPrenom(String prenom) { this.prenom = prenom; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } }
Les tests unitaires de cette classe fonctionnent bien, le proxy se crée bien et le bean est bien référencé.
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 package fr.npa.annuaire.siteWeb.actions; import junit.framework.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import fr.npa.annuaire.domain.Personne; import fr.npa.annuaire.services.PersonneService; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/applicationContext-jpa.xml" }) public class ServiceTest { @Autowired PersonneService service; @Test public void test(){ Assert.assertNotNull("service NULL", service); Assert.assertNotNull("repo est NULL", service.getRepository()); } @Test public void testAjoutePersonne(){ Personne personne = new Personne(); personne.setNom("MON NOM 2"); personne.setPrenom("MON PRENOM 2"); service.ajouter(personne); } }
Mais lorsque je le déploie dans un serveur d'application comme jetty (ou JBOSS).
J'ai l'erreur suivante :
Le bean dans ce contexte ne semble pas s'être crée alors qu'il l'est lors de l’exécution de mes tests unitaires.
Code : Sélectionner tout - Visualiser dans une fenêtre à part No matching bean of type [fr.npa.repository.PersonneRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
Auriez vous une idée de la raison pour laquelle le comportement n'est pas le même?
Je met en pièce jointe mon projet (il y a d'autres classes qui ne sont pas en rapport avec mon problème suite à d'autres tests).
Merci!
Partager