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包如下


...全文
183 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包

67,549

社区成员

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

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