大家帮我看看hibernate这入门小例子有错?

sunwei_07 2007-07-18 11:26:41
package myhibernate;

import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
import java.lang.*;

public class Test{
public static void main(String[]args){
try{
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();

User user = new User();
user.setPassword("liqing");
user.setUsername("sunwei");
session.save(user);

tx.commit();
session.close();
}
catch(HibernateException e){
e.printStackTrace();
}
}
}



为什么运行后有这错误:
Exception in thread "main" java.lang.NoClassDefFoundError: Test (wrong name: myh
ibernate/Test)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
...全文
696 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
songfuqiang 2008-06-14
  • 打赏
  • 举报
回复
应该差jar包,.
liuxueyongyu 2007-08-07
  • 打赏
  • 举报
回复
我也遇到这种问题,不知各位解决了没有,请赐教!
headbutcher 2007-08-05
  • 打赏
  • 举报
回复
UP!
dljava 2007-08-04
  • 打赏
  • 举报
回复
你叫孙伟?
liutingliang1230 2007-08-04
  • 打赏
  • 举报
回复
读取映射文件错误,重新配置好就可以了
fantasybob 2007-08-03
  • 打赏
  • 举报
回复
映射类 xxx.hbm.xml 写错了

<hibernate-mapping>
<class name="com.sunwei.Test" table="TEST">
//这个部分 你的class name可能写成 "com.sunwei.test" 了吧 这里要注意!是大写的,和持久化的类的类名一定要一样 大小写注意!
</hibernate-mapping>
sunwei_07 2007-07-19
  • 打赏
  • 举报
回复
我的hibernate.cfg.xml不对吗?

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTTPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforce.net/hibernate-configuration-2.2.dtd" >
<hibernate-configuration>

<session-factory name = "java:/hibernate/HibernateFactory">
<!-- properties -->
<property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="connection.url">
jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=red;
</property>
<property name="connection.username">sa</property>
<property name="connection.password">sunwei</property>

<!-- mapping files -->


<mapping resource="User.hbm.xml"/>

</session-factory>

</hibernate-configuration>
sunwei_07 2007-07-18
  • 打赏
  • 举报
回复
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment
).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.
xml
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1494)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
at Test.main(Test.java:8)
Caused by: org.dom4j.DocumentException: hibernate.sourceforge.net
Nested exception: hibernate.sourceforge.net

at org.dom4j.io.SAXReader.read(SAXReader.java:358)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1484)
... 3 more
yzc_1985 2007-07-18
  • 打赏
  • 举报
回复
光一个hibernate 的jar包不够啊 还有一些必须的包
antlr (必需) Hibernate使用ANTLR来产生查询分析器,这个类库在运行环境下时也是必需的。
dom4j (必需) Hibernate使用dom4j解析XML配置文件和XML映射元文件。
CGLIB ,asm(必需) Hibernate在运行时使用这个代码生成库增强类(与Java反射机制联合使用)。
Commons Collections, Commons Logging (必需) Hibernat使用Apache Jakarta Commons项目提供的多个工具类库。
EHCache (必需) Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache缓存工具。
Log4j (可选) Hibernate使用Commons Logging API,它也可以依次使用Log4j作为底层实施log的机制。如果上下文类目录中存在Log4j库,则Commons Logging使用Log4j和并它在上下文类路径中寻找的log4j.properties文件。你可以使用在Hibernate发行包中包含中的那个示例Log4j的配置文件。这样,把log4j.jar和它的配置文件(位于src/目录中)拷贝到你的上下文类路径下,就可以在后台看到底程序如何运行的。
其他文件是不是必需的? 请察看Hibernate发行包中的 lib/README.txt文件
sunwei_07 2007-07-18
  • 打赏
  • 举报
回复
我就是照书一样的下来的
hibernate也换过几个版本了,3和2都试了。。。
classpath 里除了要包含hibernate还要包含什么吗?
yzc_1985 2007-07-18
  • 打赏
  • 举报
回复
有换错误了啊?
你开发环境是什么呀代码写的应该没问题 主要是其他一些配置什么的 你最好找个例子 一模一样照他的来
sunwei_07 2007-07-18
  • 打赏
  • 举报
回复
我已经到classes下了,没有任何包了,把package也已经去了,就是我刚说的错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/Attribute
at Test.main(Test.java:8)
yzc_1985 2007-07-18
  • 打赏
  • 举报
回复
package myhibernate;
去掉这句 再象运行你的helloworld一样运行一遍
yzc_1985 2007-07-18
  • 打赏
  • 举报
回复
你把包申明去掉
你写helloworld的时候没带包申明吧
sunwei_07 2007-07-18
  • 打赏
  • 举报
回复
我把hibernate操作文件移动到classes根目录下,错误为
Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/Attribute
at Test.main(Test.java:8)

好象是指向SessionFacotry sf = .... 这句错误
sunwei_07 2007-07-18
  • 打赏
  • 举报
回复
可以的
yzc_1985 2007-07-18
  • 打赏
  • 举报
回复
你在这个包下面见一个简单的helloworld 看能不能成功运行
sunwei_07 2007-07-18
  • 打赏
  • 举报
回复
文件名检查过好几次了; 绝对没有问题
然后我在classpath里已经把hibernate.jar包含进去了
文件也已经成功编译成class文件了
yzc_1985 2007-07-18
  • 打赏
  • 举报
回复
不关hibernate方面的问题

先看看你的.java文件名要和public类名是不是一样 Test.java

如果一样还这样就
看看是不是classpath的问题 因为提示的是类文件找不到.
或者先用javac 编译下 看.class在哪了
goofy521 2007-07-18
  • 打赏
  • 举报
回复
可以吧log4j的jar包删除掉运行看看
加载更多回复(2)

67,513

社区成员

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

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