2015-08-23 40 views
1

我嘗試構建會話工廠對象時出現異常。我hibernate.cfg.xmljava.lang.AbstractMethodError當buildind會話工廠

<?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> 

HibernateConfiguration類:

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) { 
    } 
} 

當我嘗試運行該程序,我得到異常java.lang.AbstractMethodError在該行SessionFactory = configuration.buildSessionFactory(registry)。我該如何解決它?

+0

Plz add full stack trace? – Bikku

+0

你能解決這個問題嗎?我也有這個相同的問題。 –

+0

你的類'SessionFactory'和實例變量'SessionFactory'不應該是一樣的。將實例變量更改爲'sessionFactory'(以小寫_開頭 – muttonUp

回答

0

你的類和你的實例變量是相同的。 我已將實例重命名爲

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; 
}