-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: "Could not parse configuration: "<pas de nom de fichier>
PostPosted: Tue Jun 30, 2009 11:37 am 
Newbie

Joined: Tue Jun 30, 2009 11:03 am
Posts: 7
Bonjour,

Je débute avec Hibernate, et j'essaye de faire un mini programme qui basiquement lit ou écrit dans une base de données. J'ai un peu galérer pour générer les DAO, mais maintenant c'est bon, et l'accès aux données marche aussi.
Par contre, ça fait 2 jours que je bloque sur l'écriture dans la base, et je commence à en avoir un peu marre.

J'ai la base de données MySQL 5 (InnoDB) "mydb", avec la table "config" qui a 2 champs :
- key : chaîne de 32 caractères
- value : chaîne de 256 caractères

Voici la fin de la trace d'exécution du programme :
Code:
INFO: Not binding factory to JNDI, no JNDI name configured
30 juin 2009 16:56:21 org.hibernate.cfg.Configuration configure
INFO: configuring from resource:
30 juin 2009 16:56:21 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource:
30 juin 2009 16:56:21 org.hibernate.util.XMLHelper$ErrorLogger error
GRAVE: Error parsing XML: (1) Content is not allowed in prolog.
org.hibernate.HibernateException: Could not parse configuration:


J'ai l'impression qu'il manque un nom de fichier 3 fois :
Code:
INFO: configuring from resource: [b]ICI[/b]
...
INFO: Configuration resource: [b]ICI[/b]
...
org.hibernate.HibernateException: Could not parse configuration: [b]ICI[/b]

mais je ne trouve personne ayant le même problème...


Mon fichier hibernate.cfg.xml :
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>

      <!-- local connection properties -->
      <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mydb</property>
      <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
      <property name="hibernate.connection.username">utilisateur</property>
      <property name="hibernate.connection.password">pass</property>
      <!-- property name="hibernate.connection.pool_size"></property -->
      
      <!-- Enable Hibernate's automatic session context management -->
      <property name="current_session_context_class">thread</property>
      
      <!-- Disable the second-level cache  -->
      <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>


      <!-- dialect for MySQL -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
       
        <mapping resource="hibernate/Config.hbm.xml"/>
    </session-factory>
</hibernate-configuration>


Le code de mon programme :
Code:
Session session = HibernateUtil.currentSession();
Transaction tx = null;
try{
   tx = session.beginTransaction();

   ConfigDAO confDAO = new ConfigDAO();
   Config conf = confDAO.load("macle");
   conf.setValue("nouvelle valeur");
   confDAO.saveOrUpdate(conf);

   tx.commit();
} catch(Exception e) {
   if(tx!=null)
      tx.rollback();
   System.out.println(e);
} finally {
   session.close();
}


Quelqu'un aurait une idée ?

Merci d'avance


Top
 Profile  
 
 Post subject: Re: "Could not parse configuration: "<pas de nom de fichier>
PostPosted: Wed Jul 01, 2009 9:03 am 
Newbie

Joined: Tue Jun 30, 2009 11:03 am
Posts: 7
J'ai résolu mon problème.

Ca venait en fait du code et non de la configuration comme je le pensais. Il faut utiliser "get" et non "load".
Par ailleurs, lorsqu'Hibernate construit la requête d'insertion, il ne met pas les noms des champs et de la table entre `` ce qui me posa problème avec mes noms de champ qui étaient des mots clés, j'ai donc changé ma table.

Code:
_RootDAO.initialize();
ConstantDAO constDAO = new ConstantDAO();
Constant constant = constDAO.get("macle");
if(constant==null)
   constant = new Constant("macle");
constant.setConstantvalue("nouvelle valeur");
constDAO.saveOrUpdate(constant);


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.