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 :

Problème Integration Spring et Hibernate [Data]


Sujet :

Spring Java

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Par défaut Problème Integration Spring et Hibernate
    Hello la communauté,

    Pour mon nouveau projet j'utilise Spring pour l'inversion de contrôle et Hibernate pour l'orm et la persistance, sauf que j'ai eu un petit problème lors de mes premiers tests, qu'est le suivant:

    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
     
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [spring-data.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:526)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
    	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
    	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    	at com.oth.gestrh.tests.TestServlet.doGet(TestServlet.java:49)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    	at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider
    	at java.lang.Class.getDeclaredMethods0(Native Method)
    	at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    	at java.lang.Class.privateGetPublicMethods(Unknown Source)
    	at java.lang.Class.getMethods(Unknown Source)
    	at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source)
    	at java.beans.Introspector.getTargetMethodInfo(Unknown Source)
    	at java.beans.Introspector.getBeanInfo(Unknown Source)
    	at java.beans.Introspector.getBeanInfo(Unknown Source)
    	at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:224)
    	at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:149)
    	at org.springframework.beans.BeanWrapperImpl.getCachedIntrospectionResults(BeanWrapperImpl.java:324)
    	at org.springframework.beans.BeanWrapperImpl.getPropertyDescriptorInternal(BeanWrapperImpl.java:354)
    	at org.springframework.beans.BeanWrapperImpl.isWritableProperty(BeanWrapperImpl.java:426)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1329)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
    	... 25 more
    Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    - Mon fichier spring-data.xml

    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
     
    <?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:jdbc="http://www.springframework.org/schema/jdbc"
    	xmlns:jee="http://www.springframework.org/schema/jee"
    	xmlns:lang="http://www.springframework.org/schema/lang"
    	xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:task="http://www.springframework.org/schema/task"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:util="http://www.springframework.org/schema/util"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
    		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
    		http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.0.xsd
    		http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-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/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
     
      <bean id="datasource1"
    		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
    		<property name="url" value="jdbc:mysql://localhost/gesrh_db" />
    		<property name="username" value="root" />
    		<property name="password" value="" />
      </bean>
     
      <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="dataSource" ref="datasource1" />
    		<property name="mappingResources">
    		    <!--  >property name="annotatedClasses"-->
    			<list>
    				<value>com/oth/gestrh/model/Personne.hbm.xml</value>
    			</list>
    		</property>
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.dialect">
    					org.hibernate.dialect.MySQLDialect
    				</prop>
    				<prop key="hibernate.current_session_context_class">thread</prop>
    				<!--  >prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate3.SpringSessionContext</prop-->
    			</props>
    		</property>
    	</bean>
     
        <!--  >bean id="jdbcTemplate"
    		class="org.springframework.orm.hibernate4.HibernateTemplate">
    		<property name="sessionFactory" ref="sessionFactory" />
    	</bean-->
     
    	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
          <property name="sessionFactory" ref="sessionFactory" />
        </bean>
     
    	<bean id="hibernateTemplate"
    		class="org.springframework.orm.hibernate3.HibernateTemplate">
    		<property name="sessionFactory" ref="sessionFactory" />
    	</bean>
     
    	<bean id="personnaDAO" class="com.oth.gestrh.dao.PersonnaDAO">
          <!--  >property name="sessionFactory" ref="sessionFactory" /-->
          <property name="hibernateTemplate" ref="hibernateTemplate" />
          <!--  >property name="sessionFactory" ref="sessionFactory" /-->
        </bean>
     
    </beans>
    - Ma classe DAO:

    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
     
    public class PersonnaDAO {
     
     
     
    	private HibernateTemplate hibernateTemplate;
     
    	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
    		this.hibernateTemplate = hibernateTemplate;
    	}
     
     
    	public void ajouterPers(Personne p){
    		p.setNom("max");
    		hibernateTemplate.saveOrUpdate(p);
     
    	}
    - Et voici ma servlet principale (juste pour tester):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
     
    		PrintWriter pw = response.getWriter();
    		ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("spring-data.xml");
    		PersonnaDAO pdao = (PersonnaDAO) appContext.getBean("personnaDAO");
    		Personne p = new Personne();
    		pdao.ajouterPers(p);
    		pw.write("ça marche !");
     
    	}
    si quelqu'un peut m'aider ou m'éclaircir la situation ce serait sympa de sa part.
    Merci

    PS1: je suis sous Hibernate 3.6, Spring 3.0.7 et tomcat 6.
    PS2: quand j'execute en tant qu'application java (en passant par une methode statique et non pas une servlet, ça marche sans problème).

  2. #2
    Membre éprouvé Avatar de chewing-gum
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2009
    Messages : 105
    Par défaut
    Vérifie que la classe : org.hibernate.cache.CacheProvider est bien dans ton classpath.

    Sinon, essaye de récupérer le hibernate-core.jar qui contient cette classe (je dis ça de mémoire).

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Par défaut
    Citation Envoyé par chewing-gum Voir le message
    Vérifie que la classe : org.hibernate.cache.CacheProvider est bien dans ton classpath.

    Sinon, essaye de récupérer le hibernate-core.jar qui contient cette classe (je dis ça de mémoire).
    Merci de votre réponse, c'est ce que j'ai fait. Au fait je l'ai récupéré individuellement car je l'ai pas trouvé dans la package Hibernate, pourtant ça ne marche toujours pas.

    j'ai essayé ces deux liens:
    http://www.java2s.com/Code/Jar/h/Dow...atecorejar.htm
    http://grepcode.com/snapshot/repo1.m...-core/3.3.2.GA

    Mais que dalle ...

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Par défaut
    Problème résolu !!

    Voilà si ça peut aider quelqu'un:

    1- j'ai ajouté les jars suivants: commons-collections-3.2.1, commons-logging-1.1.1, slf4j-1.5.6, hibernate-annotation, hibernate-commons-annotation, hibernate-core

    2- Pour le mapping j'ai opté pour les annotations et non pas les fichiers xml, comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    Espérant que ça peut aider quelqu'un ...
    Merci à vous encore une fois.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème intégration Spring et Hibernate
    Par mavy77 dans le forum Spring
    Réponses: 4
    Dernier message: 12/11/2013, 10h03
  2. Problème exécution Spring et Hibernate
    Par cris83500 dans le forum Spring Web
    Réponses: 14
    Dernier message: 11/06/2013, 13h18
  3. Problème j2EE, Spring, MySQL, Hibernate sous Debian
    Par vinou94400 dans le forum Hibernate
    Réponses: 0
    Dernier message: 01/02/2012, 22h10
  4. [Integration] Problème avec Spring 3 + Hibernate + Vaadin
    Par JamesP dans le forum Spring
    Réponses: 10
    Dernier message: 30/11/2011, 02h46
  5. [Data] Problème de lazy avec hibernate et Spring
    Par Invité dans le forum Spring
    Réponses: 3
    Dernier message: 20/02/2008, 20h03

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