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 :

Autowire qui pose problème


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut Autowire qui pose problème
    Bonjour,

    je tente de reprendre mes TP petits à petit, mais j'ai un problème dans mon contrôleur lorsque je tente de lier mon service

    L'erreur est la suivante:

    Could not autowire. No beans of 'ProduitService' type found. less... (Ctrl+F1)
    Inspection info:Checks autowiring problems in a bean class.
    Et quand on essaie de lancer tout de même l'api avec l'erreur:

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'produitController': Unsatisfied dependency expressed through field 'ps'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'services.ProduitService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

    Ma classe domaine

    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
    @Entity
    public class Produit {
     
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Id
        Long id;
     
        @NotNull
        String nom;
     
        public Produit(){
     
        }
     
        public Produit(String nom){
            this.nom=nom;
        }
    }

    Mon repository

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public interface ProduitRepository extends CrudRepository<Produit,Long> {
        Produit findById(long id);
        Produit save(Produit p);
        ArrayList<Produit> findAll();
     
    }
    Mon service (j'ai volontairement effectué 0 opérations de contrôle dans le service ici pour ne pas alourdir le code ce n'est pas l'objectif).

    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
    @Service
    public class ProduitService {
     
        @Autowired
        private ProduitRepository repoP;
     
        public ProduitService(){
     
        }
     
        public Produit saveProduit(Produit p){
            return repoP.save(p);
        }
     
        public Produit getProduitById(long id){
            return repoP.findById(id);
        }
     
        public ArrayList<Produit> getProduits(){
            return repoP.findAll();
        }
     
    }
    Le controller

    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
    41
    42
    43
    44
    45
    46
    47
    @RestController
    public class ProduitController implements ErrorController {
     
     
     
        @Autowired
        private ProduitService ps;
     
        public ProduitService getPs() {
            return ps;
        }
     
        public void setPs(ProduitService ps) {
            this.ps = ps;
        }
     
        @RequestMapping("/")
        public String index() {
            return "page index";
        }
     
        @RequestMapping("/error")
        public String error() {
            return "gestion erreur";
        }
     
        @GetMapping("/produit/{id}")
        public Produit getProduitById(@PathVariable Long id){
            return ps.getProduitById(id);
        }
     
        @GetMapping("/produits")
        public ArrayList<Produit> getProduits(){
            return ps.getProduits();
        }
     
        @GetMapping("/produit/new")
        public Produit newProduit(){
            return ps.saveProduit(new Produit("Test product"));
        }
     
     
        @Override
        public String getErrorPath() {
            return "/error";
        }
    }

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Peut-on voir la classe de configuration? As-tu essayé d'ajouter @ComponentScan scanner les packages nécessaires?

    A+.

Discussions similaires

  1. [VBA]: Nom de champ qui pose problème
    Par Amitom dans le forum Access
    Réponses: 4
    Dernier message: 07/06/2007, 09h26
  2. [D5] Transtypage qui pose problème
    Par MelkInarian dans le forum Delphi
    Réponses: 4
    Dernier message: 06/04/2007, 16h38
  3. requete update qui pose problème
    Par kirian dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/02/2007, 11h20
  4. code qui pose problème
    Par onePersonne dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/10/2006, 14h27
  5. Un cast de SmartPointer qui pose probléme
    Par Higestromm dans le forum C++
    Réponses: 3
    Dernier message: 13/10/2005, 10h25

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