2012-06-15 6 views
1

Quelque chose d'étrange se passe, j'ai fait un EJB3 qui est supposé écrire quelque chose dans la BD mais chaque fois que HSQLDB rejette la connexion:Hibernate 3.3.1.GA avec HSQLDB 2.2.8 et Jboss 5.1.0.GA rejetant les connexions

a pre-9.0 client attempted to connect. we rejected them 

Mais j'utilise 2.2.8, il n'y a pas d'erreur car il est lié par maven.

ceci est mon hibernate.cfg.xml

<?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> 
     <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property> 
     <property name="hibernate.connection.url">jdbc:hsqldb:hsql://localhost</property> 
     <property name="hibernate.connection.username">sa</property> 
     <property name="connection.password"></property> 
     <!-- JDBC connection pool (use the built-in) --> 
     <property name="connection.pool_size">1</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property> 

     <property name="configurationClass"> 
      org.hibernate.cfg.AnnotationConfiguration 
     </property> 
     <property name="hibernate.transaction.manager_lookup_class"> 
      org.hibernate.transaction.JBossTransactionManagerLookup 
     </property> 
     <property name="hibernate.transaction.factory_class"> 
      org.hibernate.transaction.CMTTransactionFactory 
     </property> 
     <property name="hibernate.jndi.class"> 
      org.jnp.interfaces.NamingContextFactory 
     </property> 
     <property name="hibernate.session_factory_name"> 
      hibernate/HSQLDBSessionFactory 
     </property> 

     <!-- Disable the second-level cache --> 
     <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 
     <!-- Echo all executed SQL to stdout --> 
     <property name="show_sql">true</property> 
     <!-- Drop and re-create the database schema on startup --> 
     <property name="hbm2ddl.auto">create</property> 

     <property name="javax.persistence.validation.mode">none</property> 
     <!-- Mapping files --> 
     <mapping class="com.th.entity.TestEntity"/> 
    </session-factory> 
</hibernate-configuration> 

ce que je fais dans mon EJB:

HibernateUtil3.getSessionFactory().getCurrentSession().persist(entity); 
    HibernateUtil3.getSessionFactory().getCurrentSession().close(); 

Et mon HibernateUtil3:

import org.hibernate.SessionFactory; 
import org.hibernate.cfg.AnnotationConfiguration; 

/** 
* 
* @author adam 
*/ 
public class HibernateUtil3 { 

    private static final SessionFactory sessionFactory = buildSessionFactory();//constroi a sessão 

    private static SessionFactory buildSessionFactory() { 
     try { 
      //Configuration cfg = new Configuration();//para mapeamento xml 
      AnnotationConfiguration cfg = new AnnotationConfiguration();//para mapeamento com annotations 
      cfg.configure("hibernate.cfg.xml");//arquivo de configuração do hibernate 
      return cfg.buildSessionFactory(); 
     } catch (Throwable e) { 
      System.out.println("Criação inicial do objeto SessionFactory falhou. Erro: " + e); 
      throw new ExceptionInInitializerError(e); 
     } 
    } 

    public static SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 
} 

une idée? Merci = D

Répondre

1

Vous devez remplacer le fichier hsqldb.jar fourni avec JBoss par le fichier java HSQLDB version 2.2.8.

+0

En effet, c'était en commun/lib, merci beaucoup = D – Eildosa

Questions connexes