アプリケーションの構築に hibernate 4 を使用しています。アプリケーションの実行中に、次のエラーが発生します。
sessionFactory object.java.lang.NoSuchFieldError の作成に失敗しました: スレッド "main" java.lang.NullPointerException で TRACE 例外が発生しました
私のコードスニペットは、
try{
session = new DBConnection().getSession();
tx= session.beginTransaction();
........
........
}catch(HibernateException ex)
{
if (tx!=null) tx.rollback();
ex.printStackTrace();
session.close();
DBConnection.close();
}
catch(Exception ex)
{
ex.printStackTrace();
session.close();
}
finally{
session.close(); // The error is shown in this line while run time
DBConnection.close();
}
DBConnection.java
public DBConnection()
{
try
{
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
factory = configuration.buildSessionFactory(serviceRegistry);
}
catch (Throwable ex) {
System.err.println("Failed to create sessionFactory object." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public Session getSession()
{
return factory.openSession();
}
// Call this during shutdown
public static void close() {
factory.close();
}
私の構成ファイルは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- Assume test is the database name -->
<property name="hibernate.connection.url">
jdbc:mysql://localhost:3306/test
</property>
<property name="hibernate.connection.username">
root
</property>
<property name="hibernate.connection.password">
test
</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="use_sql_comments">false</property>
<property name="hibernate.connection.pool_size">40</property>
</session-factory>
</hibernate-configuration>
コードまたはjarファイルの何が問題なのか教えてください。
**
回答: log4j がこの問題の原因です。Log4j を削除し、log4j-1.2.16.jar を追加しました。それは修正されます。ありがとう!
**