net.sf.hibernate.MappingException: Error reading resource: ems_sh/hibernate/mapping_files/User.hbm.xml
at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:318)
at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:976)
at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:928)
at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:856)
at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:842)
at ems_sh.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:16)
at ems_sh.struts.action.LoginAction.execute(LoginAction.java:28)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
Caused by: net.sf.hibernate.MappingException: persistent class [ems_sh.hibernate.entity.User] not found
at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:84)
at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:221)
at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1229)
at net.sf.hibernate.cfg.Configuration.add(Configuration.java:249)
at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:285)
at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:315)
... 22 more
Caused by: java.lang.ClassNotFoundException: ems_sh.hibernate.entity.User
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:199)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:224)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:41)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at net.sf.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:86)
at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:81)
... 27 more
Initial SessionFactory creation failed.

解决方案 »

  1.   

    hibernate.cfg.xml文件
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration
        PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration>    <session-factory>        <!-- Database connection settings -->
            <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
            <property name="connection.url">jdbc:oracle:thin:@localhost:1521:o9idb</property>
            <property name="connection.username">ycx</property>
            <property name="connection.password">ycx</property>        <!-- JDBC connection pool (use the built-in) -->
            <property name="connection.pool_size">1</property>
            <property name="c3p0.max_size">5</property>
            <property name="c3p0.timeout">600</property>        <!-- SQL dialect -->
            <property name="dialect">net.sf.hibernate.dialect.Oracle9Dialect</property>        <!-- Use EHCache but not the query cache. -->
            <property name="cache.provider_class">net.sf.ehcache.hibernate.Provider</property>
            <property name="cache.use_query_cache">false</property>
            <property name="cache.use_minimal_puts">false</property>        <!-- Print SQL to stdout.
            <property name="show_sql">true</property>-->        <!-- Create the tables
            <property name="hibernate.hbm2ddl.auto">update</property>-->
            <mapping resource="ems_sh/hibernate/mapping_files/User.hbm.xml"/>    </session-factory></hibernate-configuration>
    User.hbm.xml文件<?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-mapping
        PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"><hibernate-mapping>
       <class name="ems_sh.hibernate.entity.User" table="user_table">
       <id name="id" type="integer">
          <column name="id" />
       <generator class="native"/>
       </id>   <property name="name" type="string">
          <column name="name" />
       </property>   <property name="user_type" type="string">
              <column name="user_type" />
       </property>  <property name="password" type="string">
              <column name="password" />
      </property>
      </class></hibernate-mapping>
      

  2.   

    Error reading resource: ems_sh/hibernate/mapping_files/User.hbm.xml
    查看一下你的User.hbm.xml的路径是否正确,hibernateSessionFactory有没有configure过?
      

  3.   

    路径检查了啊 感觉没问题吗?应该怎么写啊?
    hibernateSessionFactory有没有configure过?是指在hibernate.cfg.xml中吗?
      

  4.   

    大家注意这个地方
    Initial SessionFactory creation failed.在HibernateUtil.java中
    public class HibernateUtil {
            private static final SessionFactory sessionFactory;        static {
                    try {
                            // Create the SessionFactory
                            sessionFactory = new Configuration().configure()
                                            .buildSessionFactory();
                    } catch (Throwable ex) {
                            ex.printStackTrace();
                            System.out.println("Initial SessionFactory creation failed.");
                            throw new ExceptionInInitializerError(ex);
                    }
            }        public static final ThreadLocal tLocalsess = new ThreadLocal();        public static final ThreadLocal tLocaltx = new ThreadLocal();        /*
             * getting the thread-safe session for using
             */
            public static Session currentSession() {
                    Session session = (Session) tLocalsess.get();                // open a new one, if none can be found.
                    try {
                            if (session == null || !session.isOpen()) {
                                    session = openSession();
                                    tLocalsess.set(session);
                            }
                    } catch (HibernateException e) {
                            // throw new HibernateException(e);
                            e.printStackTrace();
                    }
                    return session;
            }        /*
             * closing the thread-safe session
             */
            public static void closeSession() {                Session session = (Session) tLocalsess.get();
                    tLocalsess.set(null);
                    try {
                            if (session != null && session.isOpen()) {
                                    session.close();
                            }                } catch (HibernateException e) {
                            // throw new InfrastructureException(e);
                    }
            }        /*
             * begin the transaction
             */
            public static void beginTransaction() {
                    System.out.println("begin tx");
                    Transaction tx = (Transaction) tLocaltx.get();
                    try {
                            if (tx == null) {
                                    tx = currentSession().beginTransaction();
                                    tLocaltx.set(tx);
                            }
                    } catch (HibernateException e) {
                            // throw new InfrastructureException(e);
                    }
            }        /*
             * close the transaction
             */
            public static void commitTransaction() {
                    Transaction tx = (Transaction) tLocaltx.get();
                    try {
                            if (tx != null && !tx.wasCommitted() && !tx.wasRolledBack())
                                    tx.commit();
                            tLocaltx.set(null);
                            System.out.println("commit tx");
                    } catch (HibernateException e) {
                            // throw new InfrastructureException(e);
                    }
            }        /*
             * for rollbacking
             */
            public static void rollbackTransaction() {
                    Transaction tx = (Transaction) tLocaltx.get();
                    try {
                            tLocaltx.set(null);
                            if (tx != null && !tx.wasCommitted() && !tx.wasRolledBack()) {
                                    tx.rollback();
                            }
                    } catch (HibernateException e) {
                            // throw new InfrastructureException(e);
                    }
            }        private static Session openSession() throws HibernateException {
                    return getSessionFactory().openSession();
            }        private static SessionFactory getSessionFactory() throws HibernateException {
                    return sessionFactory;// SingletonSessionFactory.getInstance();
            }
    }
      

  5.   

    一般把*.hbm.xml,hibernate.cfg.xml放到classpath中. 就你的上面的.可以这样改:
    hibernate.cfg.xml文件:
    <mapping resource="User.hbm.xml"/>User.hbm.xml文件:把他放到ems_sh的上一级目录就行了(亦即hibernate.cfg.xml和User.hbm.xml都放在同一目录)
      

  6.   

    IhaveGotYou(扬扬)你说的classpath是指虚拟目录吗?
      

  7.   

    我照你说的改了 
    错误变成
    net.sf.hibernate.MappingException: Error reading resource: User.hbm.xml
    at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:318)
    at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:976)
    at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:928)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:856)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:842)
    at ems_sh.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:16)
    at ems_sh.struts.action.LoginAction.execute(LoginAction.java:27)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    Caused by: net.sf.hibernate.MappingException: persistent class [User] not found
    at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:84)
    at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:221)
    at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1229)
    at net.sf.hibernate.cfg.Configuration.add(Configuration.java:249)
    at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:285)
    at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:315)
    ... 22 more
    Caused by: java.lang.ClassNotFoundException: User
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:199)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:61)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:224)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:41)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:141)
    at net.sf.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:86)
    at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:81)
    ... 27 more
    Initial SessionFactory creation failed.
      

  8.   

    按IhaveGotYou(扬扬)做的没错,一定是你搞错了