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 Web Java Discussion :

No Hibernate Session bound to thread


Sujet :

Spring Web Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Points : 66
    Points
    66
    Par défaut No Hibernate Session bound to thread
    Bonsoir les amies.
    je recois toujours la même erreur quand j'esseye d'integrer hibernate a spring No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here. Je me suis document sur internet et j'ai trouvé que je devais configuré les transaction c'est ce que j'esseye de faire mais j'y arrive pas:
    Voici le fichier contexte:
    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
     
    <?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:p="http://www.springframework.org/schema/p"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
     
        <!--bean id="propertyConfigurer"
              class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
              p:location="/WEB-INF/jdbc.properties" />
     
        <bean id="dataSource"
              class="org.springframework.jdbc.datasource.DriverManagerDataSource"
              p:driverClassName="${jdbc.driverClassName}"
              p:url="${jdbc.url}"
              p:username="${jdbc.username}"
              p:password="${jdbc.password}" /-->
     
        <!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) -->
        <bean id="implementationProduit" class="akatsuki.domain.service.implProduit">
            <property name="productDao" ref="produitDaoHibernate"/>
        </bean>
     
        <bean id="produitDaoHibernate" class="akatsuki.domain.repositryimpl.ProduitDaoHibernate" >
            <property name="sessionFactory" ref="SessionFactory"/>
        </bean>
     
     
     
        <bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
                    <prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/achat</prop>
                    <prop key="hibernate.connection.username">root</prop>
                    <prop key="hibernate.connection.password">bankai</prop>
                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                </props>
            </property>
     
        </bean>
     
        <bean id="TransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory"><ref local="SessionFactory"/></property>
        </bean>
     
        <bean id="transaction" abstract="true"
            class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
                <property name="target" ref="implementationProduit"/>
                <property name="transactionAttributes">
                    <props>
                        <prop key="get*">PROPAGATION_REQUIRED</prop>
                    </props>
                </property>
        </bean>
     
     
     
     
     
     
    </beans>
    j'ai ajouté le transactionFactoryBean et je lui est précise mon bean qui implemente ma classe service mais je recois toujours la même erreur.

    voici aussi le code de la classe qui implemente mon 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
    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
     
    /*
     *
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package akatsuki.domain.repositryimpl;
    import akatsuki.domain.model.Produit;
    import akatsuki.domain.repositry.ProductDao;
    import java.io.FileWriter;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    /**
     *
     * @author hamza
     */
    public class ProduitDaoHibernate implements ProductDao{
        private SessionFactory sessionFactory;
        public List<Produit> getProduits() {
            List<Produit>lst;
            lst=new ArrayList<Produit>();
            /*Produit p = new Produit();
            p.setId(11);
            p.setNom("Giggs");
            lst.add(p);*/
            Session session = sessionFactory.getCurrentSession();
            Query req = session.createQuery("select id,nom from Produit");
            FileWriter fw=null;
            try{
            fw = new FileWriter("D:\\n.txt");
            fw.write("l");
            fw.flush();
            fw.close();
            }catch(Exception e){
     
            }
            int i=0;
            for(Iterator it = req.iterate();it.hasNext();){
                Produit p = new Produit();
                Object[]ligne=(Object[])it.next();
                p.setId(Integer.parseInt(ligne[0].toString()));
                p.setNom(String.valueOf(ligne[1]));
                lst.add(p);
                try{
                fw.write(String.valueOf(i));
                fw.flush();
                fw.close();
                }
                catch(Exception e){
     
                }
            }
     
            return lst;
        }
     
        public void setSessionFactory(SessionFactory sessionFactory) {
            this.sessionFactory = sessionFactory;
        }
     
     
    }
    L'erreur est au niveau de getCurrentSession().
    Merci d'avance pour vos réponses.

  2. #2
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Pourrais-tu poster une trace de l'exception stp ?
    Sinon, pourquoi n'utilises-tu pas HibernateDaoSupport ou HibernateTemplate dans ton DAO ?

  3. #3
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Points : 66
    Points
    66
    Par défaut
    J'ai déja réalisé cela avec hibernateTemple et aussi avec le mécanimse AOP(advice,pointcut,advisoor) je cherche maintenant juste les différents moyens pour réaliser les transactions.
    Voici la pile:
    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
     
    StandardWrapperValve[dispatcher]: PWC1406 : servlet.service() pour le servlet dispatcher a émis une exception.
    org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
            at org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63)
            at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:544)
            at akatsuki.domain.repositryimpl.ProduitDaoHibernate2.getProduits(ProduitDaoHibernate2.java:24)
            at akatsuki.domain.service.implProduit.lstProduits(implProduit.java:24)
            at akatsuki.web.ProduitController.handleRequest(ProduitController.java:22)
            at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
            at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:874)
            at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
            at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
            at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
            at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
            at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
            at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

  4. #4
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Voici un lien qui peut t'aider : [ame="http://forum.springsource.org/showthread.php?t=25631"]http://forum.springsource.org/showthread.php?t=25631[/ame].

    Bon courage !

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/09/2011, 09h49
  2. [Data] Erreur: No Hibernate Session bound to thread
    Par slanbuas dans le forum Spring
    Réponses: 5
    Dernier message: 23/06/2011, 17h37
  3. Réponses: 5
    Dernier message: 29/09/2009, 18h56
  4. [Integration] No Hibernate Session bound to thread, ejb3 stateless et Spring
    Par pbdlpc dans le forum Spring
    Réponses: 4
    Dernier message: 26/09/2008, 16h23
  5. [Hibernate] Session & Objets persistants
    Par Gob4 dans le forum Hibernate
    Réponses: 3
    Dernier message: 22/05/2006, 14h13

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