Pas de correspondance bean de type [org.mise en veille prolongée.SessionFactory] trouvé pour la dépendance

Je suis un débutant dans le Spring MVC. Je rencontre un problème "Pas de correspondance bean de type [org.mise en veille prolongée.SessionFactory] trouvé pour la dépendance: attendre au moins 1 fève qui se qualifie comme autowire candidat à cette dépendance." et de passer beaucoup de temps.

J'ai utilisé maven build de gestion. Mon projet est un projet qui se compose de 2 modules : springcore (jar) et spring mvc (web app). Et spring mvc (web app) a été dépendance ressort. Dans le ressort du module de base, j'ai défini tous les paquets tels que les dom, de dao, de service et de leur mise en œuvre et j'ai également défini applicationContext.xml dans src/main/resources suivantes :

applicationContext.xml

<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-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/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- Activates scanning of @Autowired -->
<context:annotation-config />
<context:component-scan base-package="com.netvn" /> 
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="classpath:jdbc" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"                    p:password="${jdbc.password}" />
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>com.netvn.dom.Contact</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.max_fetch_depth">3</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.batch_size">10</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>

ContactDaoImpl.java

@Repository
public class ContactDaoImpl implements ContactDao {
private Log log = LogFactory.getLog(ContactDaoImpl.class);
@Autowired
private SessionFactory sessionFactory;
public List<Contact> listContact() {
Session session = sessionFactory.getCurrentSession();
Query q = session.createQuery("select g from Contact g order by id desc");
List<Contact> contactList= q.list(); 
return contactList; 
}
}

ContactServiceImpl.java

@Service
@Transactional
public class ContactServiceImpl implements ContactService {
@Autowired
private ContactDao contactDao;
@Transactional(propagation=Propagation.REQUIRED)
public List<Contact> listContact(){
return contactDao.listContact();
}
}

Dans spring mvc (web app), j'ai défini web.xml et dispatcher-servlet.xml

dispatcher-servlet.xml

<?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: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/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config />
<mvc:annotation-driven />
<context:component-scan base-package="com.netvn.dao" />
<context:component-scan base-package="com.netvn.service" />
<context:component-scan base-package="com.netvn.controller" />
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:*.xml
</param-value>
</context-param>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> 
</web-app>

Voici mon problème lorsque j'essaie de le lancer dans Tomcat 6.0 serveur

Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory com.netvn.dao.impl.ContactDaoImpl.sessionFactory; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.hibernate.SessionFactory] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:502)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:282)
... 86 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.hibernate.SessionFactory] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:920)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:789)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:474)

Quelqu'un peut me dire, quelle est la raison SessionFactory ne peut pas être créé par le Contexte d'Application Web ou de tout problème lorsque j'ai configuré SessionFactory.

À l'appui, sera apprécié.

hibernate version utilisée
pouvez-vous confirmer si le applicationContext.xml le fichier est copié dans le classpath et il est chargé
J'ai utilisé de printemps version 3.0.5 la LIBÉRATION et la mise en veille prolongée-core-3.3.2.GA dépendance pour mon projet. Aucun problème avec mon projet de dépendances?
Montrons ici stackoverflow.com/questions/8961275/...
ressemble les annotations ne sont pas ramasser comme indiqué avec <context:annotation-config /> tag. Cela peut être dû à "contextConfigLocation" config param pas repris comme prévu à partir de web.xml.

OriginalL'auteur Phạm Thanh Tùng | 2013-03-29