看视频上说的用hibernate写的第一个小程序,运行时出现了如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:120)
at StudentTest.main(StudentTest.java:17)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 2 more
请问是什么原因啊?所需要的jar包也都引入进去了的呀。

解决方案 »

  1.   

    Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory没有commons-logging 组件去这里下吧
    http://commons.apache.org/logging/
      

  2.   

    什么意思?能说具体点吗?我是用myeclipse建立的一个java project。只是实现一个model和数据库的连接,并没有写其它的功能。
    ublic class StudentTest { public static void main(String[] args) {
    Student s = new Student();
    s.setId(1);
    s.setName("s1");
    s.setAge(1);
    Configuration cfg =new Configuration();
    SessionFactory sf = cfg.configure().buildSessionFactory();
    Session session = sf.openSession();
    session.beginTransaction();
    session.save(s);
    session.getTransaction().commit();
    session.close();
    sf.close();
    }}
    来通过hibernate向数据库中存东西,我的hibernate.cfg.xml中也配置了的呀。
      

  3.   

    你把commons-logging组建下载下来 放到lib里就可以了
      

  4.   

    放进去了,但出现了新的错误:
    Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter
    at org.hibernate.bytecode.cglib.BytecodeProviderImpl.getProxyFactoryFactory(BytecodeProviderImpl.java:33)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactoryInternal(PojoEntityTuplizer.java:182)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:160)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
    at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
    at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:269)
    at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:425)
    at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218)
    at StudentTest.main(StudentTest.java:18)
    Caused by: java.lang.ClassNotFoundException: net.sf.cglib.proxy.CallbackFilter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    ... 13 more
    请问什么意思?
      

  5.   

    能告诉我需要哪些包不?我下载了hibernate-annotations-3.4.0.GA和hibernate-distribution-3.3.2.GA和slf4j-1.5.8。
      

  6.   

    能告诉我需要哪些包不?我下载了hibernate-annotations-3.4.0.GA和hibernate-distribution-3.3.2.GA和slf4j-1.5.8。
      

  7.   


    它的lib/require目录中的包必须都要有的
    antlr.jar
    cglib.jar
    asm.jar
    commons-collections.jar
    commons-logging.jar
    jta.jar
    dom4j.jar
    slf4j-api.jar
      

  8.   

    非常感谢啊!我下的这个require目录中只有:
    antlr.jar
    commons-collections.jar
    dom4j.jar
    javassist.jar
    jta.jar
    slf4j-api.jar
    少了几个。我已经把JAR文件全下到了,问题解决了,谢谢了!