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

Hibernate Java Discussion :

Messsage d'erreur "session closed"


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 9
    Par défaut Messsage d'erreur "session closed"
    Bonjour a tous, j'ai un problème de session closed sous hibernate

    Lorsque j'utilise le debbuger, il me dir que la session que j'envoi est ouverte, c'est quand on passe le return qu'elle passe à closed.

    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
     
    org.hibernate.SessionException: Session is closed!
    	at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:72)
    	at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1346)
    	at fr.visionitgroup.centreon.dao.DaoCnxImpl.clear(DaoCnxImpl.java:89)
    	at fr.visionitgroup.centreon.utils.ApplicationContextUtils.clearDao(ApplicationContextUtils.java:283)
    	at fr.visionitgroup.centreon.utils.ApplicationContextUtils.initDao(ApplicationContextUtils.java:164)
    	at fr.visionitgroup.centreon.utils.ApplicationContextUtils.<init>(ApplicationContextUtils.java:120)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    	at java.lang.reflect.Constructor.newInstance(Unknown Source)
    	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
    	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    mon util :



    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
    package fr.visionitgroup.centreon.dao;
     
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.AnnotationConfiguration;
     
    /**
     * @author sbuisson
     * 
     */
    public class HibernateUtil
    {
     
      private static SessionFactory   sessionFactory = null;
     
      static
      {
        try
        {
     
          sessionFactory = (new AnnotationConfiguration().configure("hibernate.cfg.xml").buildSessionFactory());
     
        }
        catch (final HibernateException ex)
        {
          ex.printStackTrace();
          throw new RuntimeException("Problème de configuration : " + ex.getMessage(), ex);
        }
     
      }
     
      public static final ThreadLocal session        = new ThreadLocal();
     
      public static Session currentSession()
                      throws HibernateException
      {
        Session s = (Session)session.get();
        // Ouvre une nouvelle Session, si ce Thread n'en a aucune
        if (s == null)
        {
          s = sessionFactory.openSession();
          session.set(s);
        }
        return s;
      }
     
      public static void closeSession()
                      throws HibernateException
      {
        final Session s = (Session)session.get();
        session.set(null);
        if (s != null)
        {
          s.close();
        }
      }
    }
    mon conf
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                             "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
     <session-factory name="">
      <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
      <property name="hibernate.connection.password">root</property>
      <property name="hibernate.connection.url">jdbc:derby:CentreonDB;create=true;update=true;</property>
      <property name="hibernate.connection.username">root</property>
      <property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
      <property name="hibernate.hbm2ddl.auto">create-drop</property>
      <property name="hibernate.default_schema">CENTREON</property>
      <!-- <property name="connection.pool_size">15</property> -->
      <mapping class="fr.visionitgroup.centreon.model.CnxWebLogic"/>
      <mapping class="fr.visionitgroup.centreon.model.ConnexionImpl"/>
      <mapping class="fr.visionitgroup.centreon.model.Jmx.MetricJmx"/>
      <mapping class="fr.visionitgroup.centreon.model.MetricAccessible"/>
        <mapping class="fr.visionitgroup.centreon.model.MetricDB"/>
      <mapping class="fr.visionitgroup.centreon.model.Jmx.MetricJMXExist"/>
      <mapping class="fr.visionitgroup.centreon.model.Jmx.MetricJMXAddition"/>
      <mapping class="fr.visionitgroup.centreon.model.Jmx.MetricJMXCount"/>
      <mapping class="fr.visionitgroup.centreon.model.oracle.MetricOracle"/>
     
        <mapping class="fr.visionitgroup.centreon.model.ValueDB"/>
      <mapping class="fr.visionitgroup.centreon.model.oracle.OracleCnx"/>
     
     </session-factory>
    </hibernate-configuration>

    mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     Session session = HibernateUtil.currentSession();
              while (!session.isOpen())
              {
                session = HibernateUtil.currentSession();
     
              }
              final Transaction tx = session.beginTransaction();
              final Metric m = new DaoMetricImpl().findMetricByCnx(connexion.getId());
              session.createSQLQuery("delete from CENTREON.Connexion where id = " + connexion.getId()).executeUpdate();
              System.out.println(connexion.getId());
              tx.commit();
     
    HibernateUtil.sessionClosed()

    parfois la boucle while passe, mais ensuite ca me remet la meme erreur.

    aidez-moi svp!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 9
    Par défaut
    Personne?

Discussions similaires

  1. .my_kshrc[25]: no closing quote
    Par esipage dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 04/09/2012, 12h28

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