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 :

No qualifying bean of type 'org.sid.dao.IEtudiantRepository' available


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2009
    Messages : 95
    Par défaut No qualifying bean of type 'org.sid.dao.IEtudiantRepository' available
    Salut mes amis
    Je suis entrain de réalisé une application avec Spring pour la quelle j'ai fait l'entité Etudiant suivante :
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    package org.sid.entities;
     
    import java.io.Serializable;
    import java.util.Date;
     
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Temporal;
    import javax.persistence.TemporalType;
     
    @Entity
    @SuppressWarnings("serial")
    public class Etudiant implements Serializable {
     
    	@Id
    	@GeneratedValue
    	private Long idEtudiant;
    	@Column(name = "NOM", length = 80)
    	private String nom;
    	@Column(name = "PRENOM", length = 80)
    	private String prenom;
    	@Temporal(TemporalType.DATE)
    	private Date dateNaissance;
     
    	public Long getIdEtudiant() {
    		return idEtudiant;
    	}
     
    	public void setIdEtudiant(Long idEtudiant) {
    		this.idEtudiant = idEtudiant;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	public String getPrenom() {
    		return prenom;
    	}
     
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
     
    	public Date getDateNaissance() {
    		return dateNaissance;
    	}
     
    	public void setDateNaissance(Date dateNaissance) {
    		this.dateNaissance = dateNaissance;
    	}
     
    	public Etudiant() {
    		super();
    	}
     
    	public Etudiant(String nom, String prenom, Date dateNaissance) {
    		super();
    		this.nom = nom;
    		this.prenom = prenom;
    		this.dateNaissance = dateNaissance;
    	}
     
    }
    Ensuite L'interface IEtudiantRepository
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    package org.sid.dao;
     
    import org.sid.entities.Etudiant;
    import org.springframework.data.jpa.repository.JpaRepository;
     
    public interface IEtudiantRepository extends JpaRepository<Etudiant, Long> {
     
    }
    et la partie pom.xml est la suivante
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
     
    	<groupId>com.example</groupId>
    	<artifactId>Banque</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>jar</packaging>
     
    	<name>Banque</name>
    	<description>Demo project for Spring Boot</description>
     
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>1.5.8.RELEASE</version>
    		<relativePath /> <!-- lookup parent from repository -->
    	</parent>
     
    	<properties>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    		<java.version>1.8</java.version>
    	</properties>
     
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-data-jpa</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-thymeleaf</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
     
    		<!-- <dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-security</artifactId>
    		</dependency> -->
     
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-devtools</artifactId>
    			<scope>runtime</scope>
    		</dependency>
    		<dependency>
    			<groupId>mysql</groupId>
    			<artifactId>mysql-connector-java</artifactId>
    			<scope>runtime</scope>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    		</dependency>
     
    		<!-- <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> 
    			<version>5.0.0.RC1</version> </dependency> -->
     
    		<!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
    		<!--<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> 
    			<version>4.0.37.Final</version> </dependency> -->
     
     
    	</dependencies>
     
    	<repositories>
    		<repository>
    			<id>spring-milestones</id>
    			<name>Spring Milestones</name>
    			<url>https://repo.spring.io/libs-milestone</url>
    			<snapshots>
    				<enabled>false</enabled>
    			</snapshots>
    		</repository>
    	</repositories>
     
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    	</build>
     
     
    </project>
    Et la partie Controlleur est la suivante :
    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
    package org.sid.service;
     
    import java.util.List;
     
    import org.sid.dao.IEtudiantRepository;
    import org.sid.entities.Etudiant;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.domain.Page;
    import org.springframework.data.domain.PageRequest;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
     
    @RestController
    public class EtudiantRestService {
     
    	@Autowired
    	private IEtudiantRepository etudiantRepository;
     
    	@RequestMapping(value = "/saveEtudiant", method = RequestMethod.GET)
    	public Etudiant saveEtudiant(Etudiant et) {
    		return etudiantRepository.save(et);
    	}
     
    	@RequestMapping(value = "/etudiants")
    	public Page<Etudiant> listEtudiant(int page, int size) {
    		return etudiantRepository.findAll(new PageRequest(page, size));
    	}
     
    	@RequestMapping(value = "/etudiantsList")
    	public List<Etudiant> listEtudiant() {
    		return etudiantRepository.findAll();
    	}
     
    }
    et la partie application.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    spring.datasource.url = jdbc:mysql://localhost:3306/springbd
    spring.datasource.username = root
    spring.datasource.password =
    spring.datasource.driverClassName = com.mysql.jdbc.Driver
    spring.jpa.show-sql = true 
    spring.jpa.hibernate.ddl-auto = update
    spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
    Jusqu’à maintenant tout va bien j’exécute l'application et tout va bien
    Mais lorsque j'ajoute des données dans la base de données pas d'ajout et il y a un message d'erreur qui s'affiche dans le console est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
    Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.sid.dao.IEtudiantRepository' available
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:353)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:340)
    	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1090)
    	at com.example.demo.BanqueApplication.main(BanqueApplication.java:22)
    	... 5 more
    Et la partie principale de mon projet est la suivante :

    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
    package com.example.demo;
     
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
     
    import org.sid.dao.IEtudiantRepository;
    import org.sid.entities.Etudiant;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.Configuration;
     
    @SpringBootApplication
    @Configuration
    public class BanqueApplication {
     
    	public static void main(String[] args) {
    		ApplicationContext atx = SpringApplication.run(BanqueApplication.class, args);
    		IEtudiantRepository etudiantRepository = atx.getBean(IEtudiantRepository.class);
    		DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
    		try {
    			etudiantRepository.save(new Etudiant("AAAA", "BBBB", df.parse("10-01-1983")));
    			etudiantRepository.save(new Etudiant("Yuiii", "KALAMA", df.parse("15-10-1963")));
    			etudiantRepository.save(new Etudiant("lokp", "DDDD", new Date()));
    			etudiantRepository.save(new Etudiant("Vavava", "LLLL", df.parse("18-08-1980")));
    		} catch (ParseException e) {
    			e.printStackTrace();
    		}
     
    		List<Etudiant> etudiants = etudiantRepository.findAll();
    		etudiants.forEach(e -> System.out.println("le nom est : " + e.getNom()));
     
    	}
    }

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2009
    Messages : 95
    Par défaut
    J'ai essayé aussi dans le fichier principale de l'application BanqueApplication pour que je résoudre le problème et pour cela le fichier devient comme ça
    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
    package com.example.demo;
     
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
     
    import org.sid.dao.IEtudiantRepository;
    import org.sid.entities.Etudiant;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
     
    @SpringBootApplication
    public class BanqueApplication implements CommandLineRunner {
     
    	@Autowired
    	private IEtudiantRepository etudiantRepository;
     
    	public static void main(String[] args) {
    		SpringApplication.run(BanqueApplication.class, args);
     
    	}
     
    	@Override
    	public void run(String... arg0) throws Exception {
    		DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
    		try {
    			etudiantRepository.save(new Etudiant("AAAA", "BBBBB", df.parse("10-01-1983")));
    			etudiantRepository.save(new Etudiant("Wawa", "JAJAJA", df.parse("15-10-1963")));
    			etudiantRepository.save(new Etudiant("BILOL", "HAHAHA", new Date()));
    			etudiantRepository.save(new Etudiant("XXXXX", "YYYY", df.parse("18-08-1980")));
    		} catch (ParseException e) {
    			e.printStackTrace();
    		}
     
    		List<Etudiant> etudiants = etudiantRepository.findAll();
    		etudiants.forEach(e -> System.out.println("le nom est : " + e.getNom()));
     
    	}
    }
    et le message d'erreur est comme ça

    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
    Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
    2017-11-14 17:51:00.597 ERROR 9432 --- [  restartedMain] o.s.b.d.LoggingFailureAnalysisReporter   : 
     
    ***************************
    APPLICATION FAILED TO START
    ***************************
     
    Description:
     
    Field etudiantRepository in com.example.demo.BanqueApplication required a bean of type 'org.sid.dao.IEtudiantRepository' that could not be found.
     
     
    Action:
     
    Consider defining a bean of type 'org.sid.dao.IEtudiantRepository' in your configuration.
    Aidez moi s'il vous plait je suis dès que je résoudre un problème je tombe à un autre plus dur que l’enceint :'(

  3. #3
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 251
    Par défaut
    Le message t'indique que Spring ne trouve pas de bean de type org.sid.dao.IEtudiantRepository.
    L'annotation @SpringBootApplication est l'équivalent de @Configuration @EnableAutoConfiguration @ComponentScan mais par défaut il me semble que le @ComponentScan ne scanne que le package courant et ses sous packages.
    Vu que ton application est dans le package com.example.demo et ton reporistory dans org.sid.dao, je suggérerais que tu rajoute une annotation @ComponentScan(basePackages= {"org.sid"}) dans ta config

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Octobre 2009
    Messages : 95
    Par défaut
    A moins un que je devrais formaté mon PC à cause de ce problème de connexion j'ai débuté un autre projet et je mettre toutes les annotations nécessaires pour mon projet

    Pour l'annotation @ComponentScan(basePackages= {"org.sid"}) dans le menu principale BanqueApplication ça n'a pas marché sur mon ordinateur je ne connais pas encore le problème

Discussions similaires

  1. [Framework] Erreur "No qualifying bean of type found for dependency"
    Par shark59 dans le forum Spring
    Réponses: 5
    Dernier message: 04/06/2018, 00h55
  2. Réponses: 1
    Dernier message: 29/11/2016, 11h21
  3. Réponses: 1
    Dernier message: 19/07/2016, 10h50
  4. Réponses: 4
    Dernier message: 20/11/2015, 17h12
  5. Réponses: 0
    Dernier message: 29/04/2010, 14h50

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