나는 Hibernate를 시작하려고하는데, 프로그램을 실행할 때 초기화 과정에서 에러가 발생한다. 예외는,이 클래스에 의해 슬로우 복사 here에서있다 : 여기 최대 절전 모드 설정
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)에 의해 처리되었으므로 정확하다고 생각합니다.
- 하이버 네이트가 설정 파일을 찾을 수 없습니까?
- 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은 오직 Hibernate 3.3.1만을 사용할 수 있습니다. 3.3.2를 사용하고 Maven이 설치를 처리하도록 할 수 있습니까?
나는 Maven이 자동으로 처리했다고 생각했다. 이 작업을 자동화하는 쉬운 방법이 있습니까? –
Maven에게 CLASSPATH에서의 의존성을 원한다고 말하십시오 : http://maven.apache.org/shared/maven-archiver/examples/classpath.html – duffymo
고마워요. 이제는 모든 종속 항아리를 항아리와 동일한 디렉토리에 넣으려고합니다. 그러나 Maven에서 다운로드 한 모든 slf4j 항아리를 현재 디렉토리에 넣었지만 항상 org/slf4j/impl/StaticLoggerBinder와 NoClassDefFoundError를 가지고 있습니다. 어떤 생각? –