2015-08-23 2 views
1

Je reçois une exception lorsque j'essaie de créer un objet de fabrique de session. Mon hibernate.cfg.xml:java.lang.AbstractMethodError Quand buildind session factory

<?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">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> 
    <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;databaseName=lotusinvest_db</property> 
    <property name="hibernate.connection.username">sa</property> 
    <property name="hibernate.connection.password">123456</property> 
    <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property> 
    <property name="hibernate.show_sql">true</property> 
    <property name="hibernate.current_session_context_class">thread</property> 
    </session-factory> 
</hibernate-configuration> 

La HibernateConfiguration Classe:

public class HibernateConfiguration { 

    private static final SessionFactory sessionFactory = buildSessionFactory(); 

    private static SessionFactory buildSessionFactory() { 
     SessionFactory SessionFactory = null; 
     try { 
      Configuration configuration = new Configuration(); 
      configuration.configure(); 
      StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); 
      StandardServiceRegistry registry=ssrb.build(); 
      SessionFactory = configuration.buildSessionFactory(registry); 
     } catch (Throwable ex) { 
      System.err.println("Failed to create sessionFactory object." + ex); 
      ex.printStackTrace(); 
     } 
     return SessionFactory; 
    } 

    public static SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 

    public static Session openSession() { 
     return sessionFactory.openSession(); 
    } 

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

    public static void main(String[] args) { 
    } 
} 

Lorsque je tente d'exécuter le programme, je reçois l'exception java.lang.AbstractMethodError à la ligne SessionFactory = configuration.buildSessionFactory(registry). Comment puis-je le réparer? Vos variables d'instance Class et vous sont identiques.

+0

Plz ajouter une trace de pile complète? – Bikku

+0

Avez-vous pu résoudre ce problème? J'ai ce même problème aussi. –

+0

Votre classe 'SessionFactory' et la variable d'instance 'SessionFactory' ne doivent pas être identiques. Remplacez la variable d'instance par "sessionFactory" (commencez par lowercase_ – muttonUp

Répondre

0

J'ai renommé l'instance

private static SessionFactory buildSessionFactory() { 
    SessionFactory sessionFactoryInstance = null; 
    try { 
     Configuration configuration = new Configuration(); 
     configuration.configure(); 
     StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); 
     StandardServiceRegistry registry=ssrb.build(); 
     sessionFactoryInstance = configuration.buildSessionFactory(registry); 
    } catch (Throwable ex) { 
     System.err.println("Failed to create sessionFactory object." + ex); 
     ex.printStackTrace(); 
    } 
    return sessionFactoryInstance; 
}