Développement application Spring : Injection of autowired dependencies failed
Bonjour,
Je développe une application Spring utilisant hibernate pour accéder à la base de données et maven.
Quand je la lance sur mon serveur, j'ai l'erreur suivant qui apparaît:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'utilisateurController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.service.IUtilisateurService com.controller.UtilisateurController.utilisateurService; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/spi/RegionFactory
Voici mon controller :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| @Controller
@RequestMapping(value="/utilisateurs")
public class UtilisateurController {
@Autowired IUtilisateurService utilisateurService;
@RequestMapping(value="/liste", method = RequestMethod.GET)
public String getUtilisateurs(ModelMap pModel){
final List<Utilisateur> listeUtilisateurs = utilisateurService.list();
pModel.addAttribute("listeUtilisateurs", listeUtilisateurs);
return "utilisateurs";
}
public IUtilisateurService getUtilisateurService() {
return utilisateurService;
}
public void setUtilisateurService(IUtilisateurService utilisateurService) {
this.utilisateurService = utilisateurService;
}
} |
Interface service qui se trouve dans com.service
Code:
1 2 3 4 5
| public interface IUtilisateurService {
void save(Utilisateur utilisateur);
List<Utilisateur> list();
} |
Implémentation interface service qui se trouve dans com.service.impl
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| @Service
public class UtilisateurServiceImpl implements IUtilisateurService{
@Autowired IUtilisateurDao utilisateurDao;
public IUtilisateurDao getUtilisateurDao() {
return utilisateurDao;
}
public void setUtilisateurDao(IUtilisateurDao utilisateurDao) {
this.utilisateurDao = utilisateurDao;
}
public List<Utilisateur> list() {
return utilisateurDao.list();
}
public void save(Utilisateur utilisateur){
utilisateurDao.save(utilisateur);
}
} |
applicationContext.xml:
Code:
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
| <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:annotation-config/>
<context:component-scan base-package="com"></context:component-scan>
<mvc:annotation-driven/>
<mvc:resources location="/resources/" mapping="/resources/**"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/monAppli"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>
<!-- Session Factory Declaration -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="com.entities"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.enable_Lazy_Load_no_trans">true</prop>
<prop key="hibernate.default_schema">test</prop>
<prop key="format_sql">true</prop>
<prop key="use_sql_comments">true</prop>
</props>
</property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
</beans> |
springMVC-servlet.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/vues/" />
<property name="suffix" value=".jsp" />
</bean>
</beans> |
Par ailleurs, je ne sais pas également si on dois tout de même créer les getter / setter pour les attributs Autowired
Merci de votre aide