web-dev-qa-db-fra.com

propriétés d'hibernation non trouvées

nous intégrons le Java blazeds hibernate avec flex project..First nous avons testé le pur Java hibernate dans Eclipse et il s'exécute très bien. Mais quand nous mettons le même dans Tomcat pour l'intégration flexible avec blazeds, il montre l'erreur suivante. c'est la seule erreur.

Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.2.6
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 Java.sql.Timestamp handling
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Configuration configure
INFO: configuring from resource: /hibernate.cfg.xml
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Configuration getConfigurationInputSt
ream
INFO: Configuration resource: /hibernate.cfg.xml

c'est le hibernate.cfg.xml (pour identifier si hibernate.cfg.xml n'est pas trouvé et j'ai testé en supprimant DOCTYPE de .cfg.xml puis la sortie de Tomcat s'affiche en disant que l'élément racine est introuvable ... ce qui signifie qu'il est capable pour trouver le hibernate.cfg.xml (je pense)

 <?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="connection.url">jdbc:mysql://localhost/test</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <property name="show_sql">true</property>

        <property name="format_sql">true</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

         <property name="current_session_context_class">thread</property>
        <mapping class="com.model.User" />
        <mapping class="com.model.UserDetails" />
        <mapping class="com.model.LoanDetails" />
        <mapping class="com.model.BorrowerDetails" />

    </session-factory>
</hibernate-configuration>

c'est hiberutil.Java

public class HibernateUtil
{



    private static  SessionFactory sessionFactory=configureSessionFactory();
    private static ServiceRegistry serviceRegistry;


    private static SessionFactory configureSessionFactory() throws HibernateException {
        Configuration configuration = new Configuration();
        configuration.configure();
        serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();        
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);
        return sessionFactory;
    }
    public static SessionFactory getSessionFactory()
    {
        return sessionFactory;
    }
}

pourquoi l'erreur s'affiche? le contrôle vient du côté flex et exécute le point de départ de la méthode Java ... mais quand il s'agit d'hiberner l'exécution des trucs, il montre cette erreur dans Tomcat ...

Mais quand j'exécute Java + hibernate comme une pure application Java, il s'exécute très bien ..

quelqu'un peut-il m'aider?

Merci

EDIT 1 Après la modification suggérée par @Andremoniy et en mettant le fichier .cfg.xml dans le dossier src et ici aussi dans Eclipse cela fonctionne mais pas dans Tomcat avec flex

l'erreur suivante vient

org.hibernate.MappingException: An AnnotationConfiguration instance is required
to use <mapping class="com.model.User"/>
        at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.jav
a:1606)
        at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.jav
a:1561)
        at org.hibernate.cfg.Configuration.doConfigure(Configuration.Java:1540)
        at org.hibernate.cfg.Configuration.doConfigure(Configuration.Java:1514)
        at org.hibernate.cfg.Configuration.configure(Configuration.Java:1434)
        at org.hibernate.cfg.Configuration.configure(Configuration.Java:1420)
        at com.sample.HibernateUtil.configureSessionFactory(HibernateUtil
.Java:26)
        at com.sample.HibernateUtil.<clinit>(HibernateUtil.Java:20)
        at com.sample.App.checkUser(App.Java:34)
9
Samprity Kashyap

Je suppose que le problème vient du code de configuration que vous avez mentionné pour .hbm.xml ne fonctionne peut-être pas dans Tomcat.

Je pense qu'il a besoin de AnnotationConfiguration objet. Je suppose que vous avez utilisé ce code car la création d'objet Annotationconfiguration ne fonctionne pas.

Mieux vaut créer un projet maven hibernate avec pom et exporter le fichier war vers Tomcat (avec les modifications de Annotationconfiguration). Utilisez également le fichier jar log4j pour afficher les détails de l'exécution de Tomcat avec les sorties de débogage, afin que la sortie de Tomcat imprime tout le flux d'exécution.

1
pratap m

J'ai rencontré le même problème mais j'ai trouvé la solution ici ..

http://www.mkyong.com/hibernate/hibernate-error-an-annotationconfiguration-instance-is-required-to-use/

c'est à dire. Changez de ligne:

new Configuration().configure().buildSessionFactory();

à:

new AnnotationConfiguration().configure().buildSessionFactory();
1
Ramesh J

s'il apparaît que vous utilisez Intellij Idea vous devez mettre hibernate.cfg.xml fichier dans le dossier de ressources

ads

et si vous rencontrez une erreur suivante: org.hibernate.service.jndi.JndiException: erreur lors de l'analyse du nom JNDI []

supprimer dans le fichier hibernate.cfg.xml le nom du tag voir l'image :

enter image description here

1
Dmitriy Voropay

Il me semble que vous pouvez résoudre ce problème en passant hibernate.cfg.xml directement dans Configuration.

try (InputStream in = HibernateUtil.class.getResourceAsStream("/hibernate.cfg.xml")) {
     Configuration configuration = new Configuration().addInputStream(in).configure();
...
} ... 

La seule chose, vous devez pointer correctement le chemin ou la classe, pour getResourceAsStream. Ou vous voudrez peut-être créer InputStream en utilisant un chemin relatif.

1
Andremoniy