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é.
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
Vous devez vous connecter pour publier un commentaire.
Dans la question générale est de configuration manquant/classes de chemin de classe si la bibliothèque de votre propre. Vérifiez à nouveau pour corriger l'importation et de la configuration:
Utiliser classpath de numérisation pour la détection automatique de classes d'entité:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="test.package"/>
</bean>
OU le PLUS IMPORTANT : AnnotationSessionFactoryBean classe nécessite Hibernate 3.2 ou plus tard, avec l'API Java Persistence et Hibernate Annotations add-on présenter.
CONSULTER : https://docs.spring.io/spring/docs/3.2.8.RELEASE/javadoc-api/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.html
OriginalL'auteur Amit
Essayer directement de l'importation de vous dans le contexte de l'application dispatcher-servlet.xml (ce qui est clealy été chargés correctement) comme ci-dessous.
<import resource="classpath:WEB-INF/applicationContext.xml" />
OriginalL'auteur Essex Boy
Votre sessionfactory n'est pas initialisé correctement.
Lire votre erreur et ce qui est jeté. qui est
Vous avez besoin de la SessionFactory initialisé correctement
Maintenant comment tester c'est assez simple. Tout d'abord supprimer la sessionfactory ajouté dans votre code. Tester si la source de données est prise en initalized correctement
Ajouter de la source de données que autowire.
@Autocâblés
Source de données source de données;
dans vos méthodes, vous pouvez facilement faire une source de données.getConnection. Si vous êtes en mesure de tester avec la plaine jdbc, vous êtes un pas de plus.
Si votre source de données obtient configuré correctement, vous pouvez tester votre sessionfactory de la 2ème étape.
Je ne pense pas que conext la numérisation est de vous donner toute question qu'elle en dit autocâblés échouer. Si votre source de données et sessionfactory les haricots ne sont pas correctement le programme d'installation dans le fichier xml
OriginalL'auteur Acewin