私はHibernateを使い始めようとしています。私のプログラムを実行すると、初期化中にエラーが発生します。 は例外は、このクラスによってスローhereからコピーされます。ここではHibernateの設定
package net.always_data.bastien_leonard;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new Configuration().configure().buildSessionFactory();
}
catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
は、スタックトレースです:
> java net/always_data/bastien_leonard/Main
Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
Exception in thread "main" java.lang.ExceptionInInitializerError
at net.always_data.bastien_leonard.HibernateUtil.buildSessionFactory(HibernateUtil.java:18)
at net.always_data.bastien_leonard.HibernateUtil.<clinit>(HibernateUtil.java:8)
at net.always_data.bastien_leonard.Main.main(Main.java:17)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
at net.always_data.bastien_leonard.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)
... 2 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
... 3 more
問題がどこから来るか私は知らないので、私は本当に知りません見る場所:
- インストールの問題?これはMavenによって処理されたので、正しいと思います。
- Hibernateは設定ファイルを見つけることができませんか?
- classpathの問題?
私はhibernate.cfg.xmlファイルを含むクラスパスのルートからプログラムを呼び出しています。ここ は、それが実際にどのように見えるかです:
> pwd
/home/bastien/info/java/hibernate/test/Test/target/classes
> echo $CLASSPATH
/home/bastien/info/java/hibernate/test/Test/target/classes
> ls -F
hibernate.cfg.xml net/
> ls -FR
.:
hibernate.cfg.xml net/
./net:
always_data/
./net/always_data:
bastien_leonard/
./net/always_data/bastien_leonard:
Event.class Event.hbm.xml HibernateUtil.class Main.class
私は休止状態で提供チュートリアルの例に見てみましたが、Mavenのは、それらをコンパイルすることはできません。それは不完全な人工物について不平を言う。
ところで、Mavenは私にHibernate 3.3.1を使用させます。 3.3.2を使用してMavenにインストールを処理させることは可能ですか?
私は、Mavenが自動的にそれを処理すると思っていました。これを自動化する簡単な方法はありますか? –
CLASSPATHに依存関係があることをMavenに伝えてください:http://maven.apache.org/shared/maven-archiver/examples/classpath.html – duffymo
ありがとう。私はすべての依存jarファイルを私のjarファイルと同じディレクトリに入れようとしていますが、Mavenによってダウンロードされたすべてのslf4j jarをカレントディレクトリに入れていますが、org/slf4j/impl/StaticLoggerBinderのNoClassDefFoundErrorを常に持っています。何か案が? –