代码之家  ›  专栏  ›  技术社区  ›  Bastien Léonard

休眠配置

  •  1
  • Bastien Léonard  · 技术社区  · 16 年前

    我正在尝试启动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;
        }
    
    }
    

    以下是stacktrace:

    > 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
    

    我不知道问题来自何方,所以我不知道该从何处着手:

    • 安装问题?这是马文处理的,所以我想是对的。
    • Hibernate找不到配置文件?
    • 类路径问题?

    我正在从包含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
    

    我试过查看Hibernate提供的教程示例,但Maven无法编译它们;它抱怨缺少工件。

    顺便说一下,Maven只允许我使用Hibernate 3.3.1。是否可以使用3.3.2并让Maven处理安装?

    1 回复  |  直到 16 年前
        1
  •  1
  •   duffymo    16 年前

    “Java.Lang.NoCuffDeFunDurror”,表示类加载器找不到Or.HiBurn.cF.Cug配置,表示您有类路径问题。

    回声$类路径 /home/巴斯蒂安/iFiel/Java/Hibernate/测试/测试/目标/类

    您还必须将所有休眠jar和依赖项添加到类路径中。我在回声中看不到它们。