首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

net.sf.hibernate.MappingException: Error

2011-12-11 
hibernate配置文件路径问题!!急啊!两三天了还没解决!代码调试错误信息:net.sf.hibernate.MappingException

hibernate配置文件路径问题!!急啊!两三天了还没解决!
代码调试错误信息:
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:13)
at   ems_sh.struts.action.LoginAction.execute(LoginAction.java:22)
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_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:   ems_sh.hibernate.entity_class.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.


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_class.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= "password "   type= "string ">
                    <column   name= "password "   />
    </property>
   
      <property   name= "user_type "   type= "string ">
                    <column   name= "user_type "   />
      </property>
    </class>

</hibernate-mapping>

LoginAction   文件     里面什么都还没做就了几句就这样了     具体讲是Session   s   =   HibernateUtil.currentSession();执行后就出问题

package   ems_sh.struts.action;

import   org.apache.struts.action.ActionMapping;
import   org.apache.struts.action.ActionForm;
import   javax.servlet.http.HttpServletRequest;
import   javax.servlet.http.HttpServletResponse;
import   org.apache.struts.action.ActionForward;
import   ems_sh.struts.form.LoginActionForm;
import   org.apache.struts.action.Action;


import   javax.servlet.http.HttpSession;
import   ems_sh.hibernate.HibernateUtil;
import   net.sf.hibernate.Session;

public   class   LoginAction
        extends   Action   {
    public   ActionForward   execute(ActionMapping   mapping,   ActionForm   form,
                                                              HttpServletRequest   request,
                                                              HttpServletResponse   response)   {
        HttpSession   session   =   request.getSession();
        Session   s   =   HibernateUtil.currentSession();
        LoginActionForm   loginActionForm   =   (LoginActionForm)   form;
       
        /*
        String     utype   =loginActionForm.getUtype();
        String     uname   =loginActionForm.getUname();


        String     pwd   =loginActionForm.getPwd();
        String[]   userlist   =   new   String[2];
*/
       
       

        return   mapping.findForward( "home ");
    }
}
等待高手指点

[解决办法]


<mapping resource= "ems_sh/hibernate/mapping_files/User.hbm.xml "/>
这样写是没问题的~

检查你的hibernate.cfg.xml加载路劲对不对;

你是用myeclipse生成的hbm的么?
删掉之前生成的,全部重新生成一次~

[解决办法]

<classpath>
<classpathentry kind= "src " path= "src "/>
<classpathentry kind= "con " path= "org.eclipse.jdt.launching.JRE_CONTAINER "/>
<classpathentry kind= "con " path= "org.eclipse.jdt.USER_LIBRARY/lib_pms "/>
<classpathentry kind= "output " path= "web/WEB-INF/classes "/>
</classpath>

这是我的配置~

[解决办法]
学习中
[解决办法]
<mapping resource= "classpath:ems_sh/hibernate/mapping_files/User.hbm.xml "/>
改为
<mapping resource= "User.hbm.xml "/>
然后
User.hbm.xml跟hibernate.cfg.xml放同一地方
试一下吧

再有错的话,你就往电脑里面灌水,看他还错不错
[解决办法]

HibernateUtil.java的第13行就是这个吧?
sessionFactory = new Configuration().configure()
.buildSessionFactory();
报的建立sessionfactory出错,就是因为你的hibernate.cfg.xml--> User.hbm.xml--> User.java
这3个关联关系在哪一层出错了~因为不能加载User.hbm.xml;
其实,最先检查调用hibernate.cfg.xml的文件,我不知道你是怎么配置的,因为我是用spring代理的,所以在applicationContext.xml中
<!-- sessionFactory -->
<bean id= "sessionFactory " class= "org.springframework.orm.hibernate3.LocalSessionFactoryBean ">
<property name= "configLocation ">
<value> /WEB-INF/hibernate.cfg.xml </value>
</property>
</bean>
先仔细检查hibernate.cfg.xml,User.hbm.xml,User.java单个文件,然后再对应其关联关系;

热点排行