2015-08-23 43 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; 
}