NoSuchBeanDefinitionException: Pas de bean nommé "entityManagerFactory" est défini
J'ai simple Ressort 4 WebMVC application (Java-config), et je tiens à ajouter de la JPA.
Mais quand j'essaye d'exécuter l'application (comme deloyed sur Tomcat), j'obtiens:
Ce qui peut être une source d'erreur?
Erreur lors de la création de haricots avec le nom "indexController": l'Injection de
autocâblés dépendances a échoué; nested exception est
org.springframework.les haricots.usine.BeanCreationException: ne Peut pas
autowire champ: org.la démo.webtemplate.db.référentiel.CustSysRepository
org.la démo.webtemplate.les contrôleurs.IndexController.référentiel; imbriqué
exception est org.springframework.les haricots.usine.BeanCreationException:
Erreur lors de la création de haricots avec le nom "custSysRepository': Impossible de créer intérieure
haricot "(intérieur de la fève)#f4da8a0 " du type
[org.springframework.orm.jpa.SharedEntityManagerCreator] pendant le réglage
bean propriété "entityManager'; nested exception est
org.springframework.les haricots.usine.BeanCreationException: Erreur
la création de haricot avec le nom "(intérieur de la fève)#f4da8a0': Ne peut pas résoudre
référence au bean "entityManagerFactory' tout en paramètre de constructeur
l'argument; nested exception est
org.springframework.les haricots.usine.NoSuchBeanDefinitionException: Aucun
bean nommé "entityManagerFactory" est défini
Initialiseur:
package org.demo.webtemplate;
...
public class SpringWebMvcInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(Config.class);
ctx.setServletContext(servletContext);
Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
}
}
Config:
package org.demo.webtemplate;
...
@Configuration
@EnableWebMvc
@ComponentScan("pl.bzwbk.webtemplate")
@EnableJpaRepositories("pl.bzwbk.webtemplate.db.repository")
public class Config {
@Bean
public UrlBasedViewResolver setupViewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
}
Contrôleur:
package org.demo.webtemplate.controllers;
...
@Controller
public class IndexController {
@Autowired
CustSysRepository repository;
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index() {
List<CustSys> clients = repository.findByFullName("SOME NAME");
return "index"+clients .size();
}
}
Référentiel:
package org.demo.webtemplate.db.repository;
...
public interface CustSysRepository extends JpaRepository<CustSys, Long> {
List<CustSys> findByFullName(String fullName);
}
Entité:
package org.demo.webtemplate.db.entity;
...
@Entity
@Table(name = "CUST_SYS")
public class CustSys implements Serializable {
private static final long serialVersionUID = 1L;
...
@Size(max = 255)
@Column(name = "FULL_NAME")
private String fullName;
...
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
...
}
application.propriétés:
jdbc.driverClassName=org.hsqldb.jdbc.JDBCDriver
jdbc.url=jdbc:hsqldb:mem:testdb
jdbc.user=sa
jdbc.pass=
où avez-vous défini des entityManagerFactory?
OriginalL'auteur Son | 2015-02-16
Vous devez vous connecter pour publier un commentaire.
Vous êtes absent complètement DB configuration dans votre
Config
classe.Essayez ceci par exemple:
Seulement DB propriétés sont en application.fichier de propriétés. Vous devez définir des beans Spring comme je l'ai suggéré. Il suffit de regarder vos exception: le Printemps ne peut pas trouver de l'entité gestionnaire de l'usine bean; maintenant, regardez ma réponse: j'ai défini la source de données, gestionnaire d'entité et l'entité gestionnaire de l'usine de haricots...
Salut @rikica , Merci pour votre réponse, elle m'a aidé à résoudre cette erreur. Mais maintenant, je reçois l'erreur suivante. "Pas de PersistenceProvider spécifié dans EntityManagerFactory de configuration, et choisi PersistenceUnitInfo ne spécifiez pas un fournisseur de nom de classe soit". Pouvez-vous s'il vous plaît aider?
pouvez-vous s'il vous plaît ouvrir une nouvelle question? il est très difficile d'aider sans plus d'infos. de plus, cette question est assez ancien...
avez-vous trouvé la solution ? quel est le but de l'application.fichier de propriétés si je n'aime Rikica dit ?
OriginalL'auteur rikica
dans cette question j'ai posté un exemple complet comment de test de l'unité d'un printemps contrôleur qui a besoin d'une autocâblés JpaRepository.
OriginalL'auteur Heri