初学hibernate遇到问题

huang_w 2007-07-25 09:18:13
大家好!
我调试一个例子启动tomcat的时候出现以下问题:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.MappingException: entity class not found: Joblog
at org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:99)
at org.hibernate.tuple.PropertyFactory.getGetter(PropertyFactory.java:166)
at org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)
at org.hibernate.tuple.EntityMetamodel.<init>(EntityMetamodel.java:115)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:412)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:108)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:216)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)
at org.hw.hibernate.WriteLog.<clinit>(WriteLog.java:17)
at org.hw.hibernate.WritelogServlet.doPost(WritelogServlet.java:59)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:818)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:624)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassNotFoundException: Joblog
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1355)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1201)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:108)
at org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:96)
... 24 more
...全文
268 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
duke136 2007-07-26
  • 打赏
  • 举报
回复
hbm配置文件中的包名称package org.hw.hibernate没有写
huang_w 2007-07-26
  • 打赏
  • 举报
回复
哈哈!确实是啊!我解决了
谢谢你狂刀客!
huang_w 2007-07-25
  • 打赏
  • 举报
回复
Joblog.java:
package org.hw.hibernate;

import java.util.Date;

public class Joblog {

private int id;
private String content;
private Date logdate;
public Joblog(){

}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getLogdate() {
return logdate;
}
public void setLogdate(Date logdate) {
this.logdate = logdate;
}

}

WriteLog.java代码:
package org.hw.hibernate;

import java.util.Date;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class WriteLog {

public static SessionFactory sf;
static{
try{
Configuration conf=new Configuration().configure();
sf=conf.buildSessionFactory();

}catch(Exception e){
e.printStackTrace();
}finally{

}
}
public void WriteLogToDB(String contents){
System.out.println("传入参数为:"+contents);
Joblog con=new Joblog();
con.setContent(contents);
con.setLogdate(new Date());

Session session=sf.openSession();

Transaction tran=null;
try{
tran=session.beginTransaction();
session.save(con);
tran.commit();
}catch(HibernateException e){
if(tran!=null){
tran.rollback();
}
throw e;
}finally{
session.close();
}
}
}
WritelogServlet代码:
package org.hw.hibernate;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class WritelogServlet extends HttpServlet {

/**
* Constructor of the object.
*/
public WritelogServlet() {
super();
}

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
doPost(request,response);
}

/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


PrintWriter out = response.getWriter();

String log=null;
try{
response.setContentType("text/html;charset=GBK");
log=request.getParameter("comments");
System.out.println(log);
if(log!=null||log!=""){
WriteLog writer=new WriteLog();

writer.WriteLogToDB(log);
System.out.println("写入成功");
}
}catch(Exception e){
out.print("Error:"+e.getMessage());
}
}
public void destroy(){

}

}
huang_w 2007-07-25
  • 打赏
  • 举报
回复
hibernate.cfg.xml配置文件代码:
<?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">

<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>

<session-factory>
<property name="connection.username">root</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/hibernate
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">
hibernate
</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="show_sql">true</property>
<mapping resource="joblog.hbm.xml" />

</session-factory>

</hibernate-configuration>
huang_w 2007-07-25
  • 打赏
  • 举报
回复
joblog.hbm.xml配置文件代码:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools catalog="hibernate"
-->
<hibernate-mapping>
<class name="Joblog" table="joblog">
<id name="id" type="integer">
<column name="id" />
<generator class="identity"></generator>
</id>
<property name="content" type="string">
<column name="content" length="500" not-null="true" />
</property>
<property name="logdate" type="timestamp">
<column name="logdate" length="19" />
</property>
</class>
</hibernate-mapping>

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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