自己遇到的一个Hibernate之问题:Could not parse mapping document
来源:互联网 发布:mac os x ei capitan 编辑:程序博客网 时间:2024/06/05 20:40
首先贴出我的源代码:
hibernate.cfg.xml
<!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.url">jdbc:mysql://localhost/world</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">zwc0913</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="test/People.hbm.xml"/>
</session-factory>
</hibernate-configuration>
test/people.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="test.People" table="people">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name" column="name"/>
<property name="sex" column="sex"/>
</class>
</hibernate-mapping>
test/people.java
package test;
import java.io.Serializable;
@SuppressWarnings("serial")
public class People implements Serializable {
private String id;
private String name;
private String sex;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>people</servlet-name>
<servlet-class>servlet.people</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>people</servlet-name>
<url-pattern>/servlet/people</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
server/people.java
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import test.People;
@SuppressWarnings("serial")
public class people extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Configuration cofig=new Configuration().configure();
cofig.addClass(People.class);
SessionFactory sf=cofig.buildSessionFactory();
Session session=sf.openSession();
Transaction t=session.beginTransaction();
Query query=session.createQuery("select p from People as p");
t.commit();
Iterator<People> i=query.iterate();
while(i.hasNext()){
People p=(People)i.next();
out.write(p.getName()+":"+p.getSex());
}
}
}
代码运行有错:
信息: Mapping class: test.People -> people
2010-4-23 10:09:35 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet people threw exception
org.hibernate.InvalidMappingException: Could not parse mapping document from resource test/People.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:545)
at org.hibernate.cfg.Configuration.addClass(Configuration.java:592)
at servlet.people.doPost(people.java:34)
at servlet.people.doGet(people.java:24)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:717)
Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping test.People
at org.hibernate.cfg.Mappings.addClass(Mappings.java:118)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:145)
at org.hibernate.cfg.Configuration.add(Configuration.java:675)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:510)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:542)
... 17 more
出错原因:
people.hbm.xml中映射了people,自己在servlet/people.java中再一次映射了People,所以,菜出上面的错,解决之道,注释掉
cofig.addClass(People.class);
- 自己遇到的一个Hibernate之问题:Could not parse mapping document
- 学习hibernate遇到问题之Could not parse mapping document from resource
- Hibernate:Could not parse mapping document from invalid mapping Could not parse mapping document
- 使用SSH Hibernate自动创建表的问题:Could not parse mapping document from input stream
- Hibernate 4出现的Could not parse mapping document from resource,Duplicate class/entity mapping
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource
- Hibernate提示 Could not parse mapping document from resource...
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource
- 关于hibernate总是报错 配置factory的id找不到,mapping配置文件Could not parse mapping document from input stream
- 解决InvalidMappingException: Could not parse mapping document from resource问题的办法。
- Could not parse mapping document from invalid mapping
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource 处理办法
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource 处理办法
- Hibernate下出现Could not parse mapping document from resource xx.hbm.xml
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource cn/ljt/hiberna
- 2010.4月编程语言排行
- 使用Qt编写服务器端程序(包括Http传输服务器端)的方法
- C#中DllImport用法和路径问题
- .And
- shell之数组定义
- 自己遇到的一个Hibernate之问题:Could not parse mapping document
- AVR单片机UCSRC 和UBRRH 共用地址的问题
- Debian系统配置文件说明
- C#语言 第五部分 线程(二) 线程同步(1)
- 怎样查看linux当前连接数
- 禁止/启用屏幕保护及系统热键等
- Sql Mobile 数据库开始之前的一点问题总结
- Windows中函数的调用方法
- C#中利用正则表达式实现字符串搜索