最近在学习Hibernate遇到了一个问题,是这样的
我在hibernate.cfg.xml中加入<mapping resource="mypro/hibernate/user/User.hbm.xml" />
提示错误:
javax.servlet.ServletException: Could not read mappings from resource: mypro/hibernate/user/User.hbm.xmlorg.hibernate.MappingException: Could not read mappings from resource: mypro/hibernate/user/User.hbm.xml如果不加<mapping.....>则提示resource not maped........实在找不到原因错在哪了,请各位帮忙看看!!!
User.hbm.xml如下
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping
  PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="mypro.hibernate.user" table="e365_t_user">
        <id name="id" column="id" unsaved-value="0">
            <generator class="increment"></generator>
        </id>
        <property name="username" column="username" not-null="true"></property>
        <property name="password" column="username" not-null="true"></property>
        <property name="regip" column="regip" not-null="false"></property>
        <property name="regtime" column="regtime" not-null="false"></property>
    </class>
</hibernate-mapping>
hibernate.cfg.xml
.......
.......
<mapping resource="mypro/hibernate/user/User.hbm.xml" />

解决方案 »

  1.   

    有如下建议:
    1. User.hbm.xml改名成User.hbm
    2. User.hbm放在src目录下面,不使用包,直接用
    <mapping resource="User.hbm" />
    你的出错提示似乎是没有找到User.hbm.xml,应该跟路径有关。
      

  2.   

    两种可能:
    1,你的路径有问题,默认路径是class根目录
    2,User.hbm.xml配置文件有错误,请仔细检查
      

  3.   

    <class name="mypro.hibernate.user" table="e365_t_user">
    修改为
    <class name="mypro.hibernate.user.User" table="e365_t_user">
      

  4.   

    PCSKiller(电脑杀手)  还是不行啊,错误的意思好像是不能读取mapping从资源文件User.hbm.xml,可User.hbm.xml错在哪啊,实在看不出来!!!
      

  5.   

    你的classname错了,怎么只写包的名称呢?
    应该是你的XML内容写的有问题,你上网下一个比较一下
      

  6.   

    不行,还是不行,路径没问题啊,CLASSNAME也改了,倒底错哪了,看了好多例子都是这么写的啊,为什么啊???????
    我想放弃HIBERNATE了!!!!太麻烦了,还出错!!!!
      

  7.   

    你还是用MyEclipse来开发吧,他可以自动生成xml,方便也不会出问题。
      

  8.   

    具体你的错误在哪里可以从以下几方面来判断:1 你的classname只写了包名称,这个问题一定要改
    2 你确定配置文件的路径"mypro/hibernate/user/User.hbm.xml"是正确的吗?
    3 你可以把你的配置文件改为  <hibernate-mapping package="mypro.hibernate.user">    <class name="你的映射类名" table="e365_t_user">4 你的hibernate是2.0还是3.0,这两个版本的dtd文件并不兼容,如果是3.0,你可以试着把你写的
      <!DOCTYPE hibernate-mapping
      PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">改为 <!DOCTYPE hibernate-mapping
      PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">java架构中的很多框架都不好判断错误,有时候甚至会误导你,需要慢慢积累经验
      

  9.   

    我已经暂时放弃hibernate了,总是有莫明其妙的错误,大家说的这几个问题在我都注意到了,路径对着呢,没问题的
    <!DOCTYPE hibernate-mapping
      PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">关于这个是2.0还是3.0我都试过了,都不行,不知道为什么,太麻烦了,现在我倒觉得越原始越好,不要这个框架哪个框架的,呵。
      

  10.   

    放弃可不好,问题就出在XML文件上,我也遇到过,当时只是拼写问题,再查查吧