myeclipse在运行hibernate出现错误java.lang.NoClassDefFoundError

chanjianjiao5475 2016-10-13 09:03:35
错误如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/MetadataProvider
at StudentTest.main(StudentTest.java:10)
Caused by: java.lang.ClassNotFoundException: org.hibernate.annotations.common.reflection.MetadataProvider
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more

StudentTest类的代码:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.hibernate.Student;
public class StudentTest {
public static void main(String[] args) {
Student s=new Student();
s.setName("sa");
s.setAge(12);
Configuration cf=new Configuration();
SessionFactory sf=cf.configure().buildSessionFactory();
Session session=sf.openSession();
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
session.close();
sf.close();

}
}


student.hbm.xml代码 (IE打开没有显示错误)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hibernate">
<class name="Student">
<id name="id"></id>
<property name="name"></property>
<property name="age"></property>
</class>
</hibernate-mapping>


hibernate.cfg.xml代码(IE打开没有显示错误)
     <?xml version='1.0' encoding='utf-8'?>   
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver </property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">12345678</property>
<!-- <property name="hibernate.connection.pool.size">1</property> -->
<property name="hibernate.show_sql">true </property>
<!-- <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> -->
<property name="connection.characterEncoding">UTF-8</property>
<!-- <property name="hbm2ddl.auto">update</property> -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect </property>
<mapping resource="com/hibernate/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>


student.java代码如下
package com.hibernate;
public class Student {
private int age;
private String name;
private int id;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}


public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

}

导入的hibernate的jar包如下


...全文
184 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dqsweet 2016-10-14
  • 打赏
  • 举报
回复
出现这种错误一般都是XML的格式有问题,如文件头有空行、有注释等 "[xX][mM][lL]" is not allowed. "[xX][mM][lL]" is not allowed. 去掉空行或注释就可以正常启动。
chanjianjiao5475 2016-10-14
  • 打赏
  • 举报
回复
引用 4 楼 qnmdcsdn 的回复:
下边这个,是因为版本不匹配吧
版本不匹配是指所有的jar包都要一个版本还是个别的包要一个版本的
  • 打赏
  • 举报
回复
下边这个,是因为版本不匹配吧
chanjianjiao5475 2016-10-14
  • 打赏
  • 举报
回复
引用 2 楼 dqsweet 的回复:
缺这个包: hibernate-commons-annotations
加入这个jar包以后错误更多: 2016-10-14 9:12:35 org.hibernate.annotations.common.Version <clinit> INFO: HCANN000001: Hibernate Commons Annotations {4.0.2.Final} 2016-10-14 9:12:35 org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {4.2.2.Final} 2016-10-14 9:12:35 org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found 2016-10-14 9:12:35 org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist 2016-10-14 9:12:36 org.hibernate.cfg.Configuration configure INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml 2016-10-14 9:12:36 org.hibernate.cfg.Configuration getConfigurationInputStream INFO: HHH000040: Configuration resource: /hibernate.cfg.xml Exception in thread "main" org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2075) at org.hibernate.cfg.Configuration.configure(Configuration.java:1987) at org.hibernate.cfg.Configuration.configure(Configuration.java:1966) at StudentTest.main(StudentTest.java:11) Caused by: org.dom4j.DocumentException: Error on line 1 of document : The processing instruction target matching "[xX][mM][lL]" is not allowed. Nested exception: The processing instruction target matching "[xX][mM][lL]" is not allowed. at org.dom4j.io.SAXReader.read(SAXReader.java:482) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2067) ... 3 more
pixian0237 2016-10-14
  • 打赏
  • 举报
回复
导入的包有问题,缺少一些包,hibernate3.jar,commons-collections.jar,加入这些包就可以
dqsweet 2016-10-13
  • 打赏
  • 举报
回复
缺这个包: hibernate-commons-annotations
chanjianjiao5475 2016-10-13
  • 打赏
  • 举报
回复

这个是我放到程序里的hibernate相关的jar包
用户注册和登录是每个系统的必须存在的一部分,基于Dwr+Struts2+Spring+Hibernate写了一个用户登录注册系统。   其中用Dwr去进行用户注册的用户是否存在的验证。   全部业务控制交由Spring去进行处理。事务处理也交由Spring去管理。   压缩文件中不包含Jar文件(由于全部的Jar将近12M,不能全部上传),所用到的Jar目录为,工程中再也不会出现由于MyEclipse自动整合而出现的大量Jar文件 : Java代码 1. //如果不用,启动时不会出错,但使用Dwr时,会抛出异常:java.lang.NoClassDefFoundError: antlr/ANTLRException 2. antlr-2.7.2.jar  3. 4. //如果不用此包,在启动时会抛出: nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type 5. asm.jar 6. 7. // 如果不用此包,在启动时抛 出:nested exception is java.lang.NoClassDefFoundError: org/aspectj /weaver /reflect/ReflectionWorld$ReflectionWorldException 8. aspectjweaver.jar 9. 10. //如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter 11. cglib-2.1.3.jar 12. 13. //如果不用此包,在启动时抛出:nested exception is java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap 14. commons-collections-3.1.jar 15. 16. //这个似乎可以不用的 17. commons-fileupload-1.2.1.jar 18. 19. //这个就不用说啦,几乎所有框架都要使用的 20. commons-logging-1.0.4.jar 21. 22. //如果不用此包会抛出:java.lang.NoClassDefFoundError: org/dom4j/DocumentException 23. dom4j-1.6.1.jar 24. 25. //dwr必须 26. dwr.jar 27. 28. 29. //不用此包,在启动时招聘:java.lang.NoClassDefFoundError: javax/transaction/TransactionManager 30. jta.jar 31. 32. //Mysql JDBC驱动 33. mysql-connector.jar 34. 35. //Hibernate必须使用,注意此包是包含全部的。 36. hibernate3.jar 37. 38. //Spring整体包 39. spring.jar 40. 41. //struts2必须 42. freemarker-2.3.8.jar 43. //struts2必须 44. ognl-2.6.11.jar 45. //struts2核心包 46. struts2-core-2.0.11.2.jar 47. //struts2整合Spring插件 48. struts2-spring-plugin-2.0.11.2.jar 49. //struts2必须 50. xwork-2.0.5.jar   数据库设计(使用MySql数据库): Java代码 1. create table user 2. ( 3. id varchar(32) not null, 4. userName varchar(20), 5. password varchar(20), 6. primary key(id) 7. ); 8. create table user_infor 9. ( 10. id varchar(32) not null, 11. user_id varchar(32), 12. name varchar(20), 13. email varchar(30), 14. sex char, 15. age int, 16. address varchar(300), 17. primary key(id) 18. ); 19. ALTER TABLE user_infor 20. ADD FOREIGN KEY(user_id) 21. REFERENCES user(id) 22. ON DELETE CASCADE; 由于没有包含全部的Jar文件,所以朋友需要把上面所述的Jar加载。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧