所有的方法在main测试没有问题,可以正常输出数据库的结果,可是在jsp里就报如下错误,困扰我好久了,帮忙看看,谢谢
%%%% Error Creating SessionFactory %%%%
org.hibernate.MappingException: Error reading resource: com/benben/hibernate/User.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:452)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1263)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1235)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1217)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1184)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1112)
at com.benben.hibernate.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:30)
at com.benben.hibernate.BaseHibernateDAO.getSession(BaseHibernateDAO.java:15)
at com.benben.hibernate.UserDAO.save(UserDAO.java:29)
at org.apache.jsp.database_jsp._jspService(database_jsp.java:59)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
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:230)
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:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.MappingException: java.lang.SecurityException: class "org.apache.commons.collections.SequencedHashMap"'s signer information does not match signer information of other classes in the same package
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:408)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:449)
... 27 more
Caused by: java.lang.SecurityException: class "org.apache.commons.collections.SequencedHashMap"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(Unknown Source)
at java.lang.ClassLoader.preDefineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at org.hibernate.mapping.Table.<init>(Table.java:32)
at org.hibernate.cfg.Mappings.addTable(Mappings.java:120)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:251)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:236)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:152)
at org.hibernate.cfg.Configuration.add(Configuration.java:362)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:400)
... 28 more
%%%% Error Creating SessionFactory %%%%
org.hibernate.MappingException: Error reading resource: com/benben/hibernate/User.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:452)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1263)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1235)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1217)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1184)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1112)
at com.benben.hibernate.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:69)
at com.benben.hibernate.HibernateSessionFactory.getSession(HibernateSessionFactory.java:53)
at com.benben.hibernate.BaseHibernateDAO.getSession(BaseHibernateDAO.java:15)
at com.benben.hibernate.UserDAO.save(UserDAO.java:29)
at org.apache.jsp.database_jsp._jspService(database_jsp.java:59)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
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:230)
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:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.MappingException: duplicate import: com.benben.hibernate.User
at org.hibernate.cfg.Mappings.addImport(Mappings.java:105)
at org.hibernate.cfg.HbmBinder.bindPersistentClassCommonValues(HbmBinder.java:541)
at org.hibernate.cfg.HbmBinder.bindClass(HbmBinder.java:488)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:234)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:152)
at org.hibernate.cfg.Configuration.add(Configuration.java:362)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:400)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:449)
... 28 more
2008-1-2 14:09:51 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.benben.hibernate.UserDAO.save(UserDAO.java:30)
at org.apache.jsp.database_jsp._jspService(database_jsp.java:59)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter

解决方案 »

  1.   

    User.hbm.xml 和User.java 贴出来看看
      

  2.   

    User.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 Persistence Tools
    -->
    <hibernate-mapping>
        <class name="com.benben.hibernate.User" table="user" catalog="home">
            <id name="username" type="java.lang.String">
                <column name="username" length="16" />
                <generator class="assigned" />
            </id>
            <property name="password" type="java.lang.String">
                <column name="password" length="16" not-null="true" />
            </property>
        </class>
    </hibernate-mapping>
      

  3.   

    package com.benben.hibernate;/**
     * User generated by MyEclipse Persistence Tools
     */public class User implements java.io.Serializable { // Fields private String username;
    private String password; // Constructors /** default constructor */
    public User() {
    } /** full constructor */
    public User(String username, String password) {
    this.username = username;
    this.password = password;
    } // Property accessors public String getUsername() {
    return this.username;
    } public void setUsername(String username) {
    this.username = username;
    } public String getPassword() {
    return this.password;
    } public void setPassword(String password) {
    this.password = password;
    }}
      

  4.   

    package com.benben.hibernate;import java.util.Iterator;
    import java.util.List;import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.hibernate.LockMode;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import org.hibernate.criterion.Example;/**
     * Data access object (DAO) for domain model class User.
     * 
     * @see com.benben.hibernate.User
     * @author MyEclipse Persistence Tools
     */public class UserDAO extends BaseHibernateDAO {
    private static final Log log = LogFactory.getLog(UserDAO.class);
    // property constants
    public static final String PASSWORD = "password"; public void save(User transientInstance) {
    log.debug("saving User instance");
    try {
    Session session=getSession();
    Transaction tr=session.beginTransaction();
    session.save(transientInstance);
    tr.commit();
    session.flush();
    session.close();
    log.debug("save successful");
    } catch (RuntimeException re) {
    log.error("save failed", re);
    throw re;
    }
    } public void delete(User persistentInstance) {
    log.debug("deleting User instance");
    try {
    Session session=getSession();
    Transaction tr=session.beginTransaction();
    session.delete(persistentInstance);
    tr.commit();
    session.flush();
    session.close();
    log.debug("delete successful");
    } catch (RuntimeException re) {
    log.error("delete failed", re);
    throw re;
    }
    } public User findById(java.lang.String id) {
    log.debug("getting User instance with id: " + id);
    try {
    User instance = (User) getSession().get(
    "com.benben.hibernate.User", id);
    return instance;
    } catch (RuntimeException re) {
    log.error("get failed", re);
    throw re;
    }
    } public List findByExample(User instance) {
    log.debug("finding User instance by example");
    try {
    List results = getSession().createCriteria(
    "com.benben.hibernate.User").add(Example.create(instance))
    .list();
    log.debug("find by example successful, result size: "
    + results.size());
    return results;
    } catch (RuntimeException re) {
    log.error("find by example failed", re);
    throw re;
    }
    } public List findByProperty(String propertyName, Object value) {
    log.debug("finding User instance with property: " + propertyName
    + ", value: " + value);
    try {
    String queryString = "from User as model where model."
    + propertyName + "= ?";
    Query queryObject = getSession().createQuery(queryString);
    queryObject.setParameter(0, value);
    return queryObject.list();
    } catch (RuntimeException re) {
    log.error("find by property name failed", re);
    throw re;
    }
    } public List findByPassword(Object password) {
    return findByProperty(PASSWORD, password);
    } public List findAll() {
    System.out.print("yes");
    log.debug("finding all User instances");
    try {
    String queryString = "from User";
    Session session=getSession();
    String str="error";
    //if(session==null)
    //return str;
    //else{
    Query queryObject = session.createQuery(queryString);
    return queryObject.list();
    //System.out.print("ok");
    //return null;
    //}
    } catch (RuntimeException re) {
    log.error("find all failed", re);
    throw re;
    }
    } public User merge(User detachedInstance) {
    log.debug("merging User instance");
    try {
    User result = (User) getSession().merge(detachedInstance);
    log.debug("merge successful");
    return result;
    } catch (RuntimeException re) {
    log.error("merge failed", re);
    throw re;
    }
    } public void attachDirty(User instance) {
    log.debug("attaching dirty User instance");
    try {
    Session session=getSession();
    Transaction tr=session.beginTransaction();
    session.saveOrUpdate(instance);
    session.flush();
    session.close();
    log.debug("attach successful");
    } catch (RuntimeException re) {
    log.error("attach failed", re);
    throw re;
    }
    } public void attachClean(User instance) {
    log.debug("attaching clean User instance");
    try {
    getSession().lock(instance, LockMode.NONE);
    log.debug("attach successful");
    } catch (RuntimeException re) {
    log.error("attach failed", re);
    throw re;
    }
    }
    public static void main(String[] args){
    UserDAO userd=new UserDAO();
    List list=userd.findAll(); Iterator it=list.iterator();
    User user=new User();
    user=(User)it.next();
    System.out.print(user.getUsername());
    }
    }
      

  5.   

    Caused   by:   org.hibernate.MappingException:   duplicate   import:   com.benben.hibernate.User 是不是有同名类或配置文件啊?
      

  6.   

    你好好检查你的数据表的建立与User.hbm.xml和User.java定义的是不是一致?   
      

  7.   

    <id   name="username"   type="java.lang.String"> 
    ????????????
      

  8.   

    关键是我用main方法测试没有问题了,只是在jsp不能用
      

  9.   

    Caused       by:       org.hibernate.MappingException:       duplicate       import:       com.benben.hibernate.User   
    重复加载配置文件web 程序在启动的时候加载一次,在你的程序里肯定又加载一次;
    在main里好用是因为,没有web加载,所以只加载一次,所以好用;
    你检查一下你的配置文件!
      

  10.   

    请问10楼我该检查web.xml还是User.hbm.xml呢?我没有往web.xml写东西呀?
      

  11.   

    是配置文件的问题:
    在你的MYEECLIPSE里面用搜索功能,搜索关键字"User"
    即能找到所有引用此类的JAVA,和XML等等文本文件
    你再一个一个对比,就能发现是哪个地方多引用了
      

  12.   

    查看hibernte.hbm.xml是不是有两个<com/benbean/hibernate/User.hbm.xml>字样
      

  13.   

    Caused   by:   org.hibernate.MappingException:   duplicate   import:   com.benben.hibernate.User 是不是在JSP页面里引用了2次?com.benben.hibernate.User 
    还有就是hibernate.hbm.xml里是不是对user,hbm.xml引用了两次?