2013-07-22 6 views
0

Donc j'essaye de me connecter à ma base de données postgresql sur localhost jette hibernate mais j'obtiens toujours des erreurs quand j'essaye de me connecter et je ne sais vraiment pas quel est le problème.Hibernate ne se connecte pas à la base de données

> SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 
Initial SessionFactory creation failed.org.hibernate.HibernateException: /hibernate.cfg.xml not found 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:18) 
    at persistence.HibernateUtil.<clinit>(HibernateUtil.java:8) 
    at com.hp.videotheek.App.main(App.java:15) 
Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found 
    at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170) 
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:2176) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2157) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2137) 
    at persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:13) 
    ... 2 more 

C'est ce que je reçois du journal en éclipse

import org.hibernate.Session; 

import persistence.HibernateUtil; 

public class App 
{ 
    public static void main(String[] args) 
    { 
     Session session=HibernateUtil.getSessionFactory().openSession(); 
     session.beginTransaction(); 
    } 
} 

c'est là que je veux faire le conenction

package persistence; 

import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 

public class HibernateUtil { 

    private static final SessionFactory sessionFactory = buildSessionFactory(); 

    private static SessionFactory buildSessionFactory() { 
     try { 
      return new Configuration().configure().buildSessionFactory(); 
     } 
     catch (Throwable ex) { 
      System.err.println("Initial SessionFactory creation failed." + ex); 
      throw new ExceptionInInitializerError(ex); 
     } 
    } 

    public static SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 

    public static void shutdown() { 
     getSessionFactory().close(); 
    } 

} 

enter image description here

ceci est ma configuration de fichier

nouvelle erreur

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
SLF4J: Defaulting to no-operation (NOP) logger implementation 
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 
Initial SessionFactory creation failed.org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:16) 
    at persistence.HibernateUtil.<clinit>(HibernateUtil.java:8) 
    at com.hp.videotheek.App.main(App.java:11) 
Caused by: org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2246) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2158) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2137) 
    at persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:12) 
    ... 2 more 
Caused by: org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog. 
    at org.dom4j.io.SAXReader.read(SAXReader.java:482) 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2238) 
    ... 5 more 


    <!--<span class="hiddenSpellError" pre=""-->DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
<a href="http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"</a>> 

<hibernate-configuration> 
<session-factory> 
<!-- Database connection settings --> 
jdbc:postgresql://localhost:5432/postgres 
<property name="connection.driver_class">org.postgresql.Driver</property> 
<property name="connection.username">postgres</property> 
<property name="connection.password">****</property> 
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> 

<!-- SQL dialect - generate SQL for a particular database --> 
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property> 

<!-- Echo all executed SQL statements --> 
<property name="show_sql">true</property> 

<!-- Enable Hibernate's automatic session context management --> 
<property name="current_session_context_class">thread</property> 
<!-- Mapping resource configuration files --> 
<mapping resource="src/com/bookstore/bookapp.hbm.xml"/> 
</session-factory> 
</hibernate-configuration> 
+0

S'il vous plaît ajouter le hibernate.cfg.xml pour plus de détails. –

+0

a ajouté le fichier de configuration – stevedc

+0

' DOCTYPE' <--- la partie initiale ne semble pas correcte. Copiez et collez le problème? – dougEfresh

Répondre

0

Dans votre nouvelle erreur que vous avez sans balise xml:

jdbc:postgresql://localhost:5432/postgres 

Il devrait être:

<property name="connection.url">jdbc:postgresql://localhost:5432/postgres</property> 
0

Le journal dit que vous avez besoin fichier hibernate.cfg.xml.

+0

Mais où mettre le fichier je l'ai placé avec le principal src/main/java – stevedc

0

Le fichier hibernate.cfg.xml doit être (généralement) dans le dossier de ressources. Ce dossier de ressources est déterminé par votre configuration de développement. Pour le mien j'ai des ressources situées dans le dossier src/main/resources et je configure mon IDE pour marquer src/main/resources comme dossier source. Si vous fournissiez plus de détails concernant votre configuration, cela me permettrait de mieux répondre à votre question.

+0

Je déplacerais vos ressources à src/main/ressources et configurer Eclipse pour marquer src/main/ressources comme un dossier src. – dougEfresh

+0

En outre, regardez la sortie de construction, où est-ce que hibernate.cfg.xml existe? – dougEfresh

+0

J'ai ajouté le dossier resources à mon chemin de compilation mais maintenant je reçois une nouvelle erreur – stevedc

0

Utilisez ce code pour créer la fabrique de sessions.

public class HibernateUltils { 
static SessionFactory sessionFactory;  
    public static Session getSession() 
    { 
     try 
     { 
     SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 
     session = sessionFactory.openSession(); 
     return session; 
     } 
     catch(Exception e) 
     {    
      e.printStackTrace(); 
     } 
     return null;   
    } 


    private static SessionFactory getSessionFactory(){ 
    return sessionFactory; 
    } 

Appel getSession() Méthode dans la méthode principale.

Session session = HibernateUtils.getSession(); 
Questions connexes