我在我的项目下新建了一个映射文件,运行报错org.hibernate.InvalidMappingException: Could not parse mapping document from                                     
resource com/bingo/server/barback/entiy/Barback.hbm.xml
                at org.apache.mina.common.IoEvent.run(IoEvent.java:62)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor、java:907)
        at java.lang.Thread.run(Thread.java:619)
Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mappi
                                             ng com.bingo.server.barback.entiy.Barback
        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:669)
        at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504)
        at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
        ... 22 more
sessionfactory===null
java.lang.NullPointerException
        at com.bingo.server.HibernateSessionFactory.beginTransaction(HibernateSe                                             
ssionFactory.java:65)
        at com.bingo.server.placard.daoimp.PlacardDAOImpl.getPlacardById(Placard                                             
DAOImpl.java:22)
        at com.bingo.server.logic.GameLogic.placard(GameLogic.java:49)
        at com.bingo.server.logic.CommandParse.parseCommand(CommandParse.java:10                                             
9)
        at com.bingo.server.logic.CommandParse.divisionCommand(CommandParse.java                                             
:33)
        at com.bingo.server.logic.GameProtocolHandler.messageReceived(GameProtoc                                             
olHandler.java:39)
        at org.apache.mina.common.DefaultIoFilterChain$TailFilter.messageReceive              
d(DefaultIoFilterChain.java:743)
        at org.apache.mina.common.DefaultIoFilterChain.callNextMessageReceived(D                                             
efaultIoFilterChain.java:405)
        at org.apache.mina.common.DefaultIoFilterChain.access$1200(DefaultIoFilt                                             
erChain.java:40)
        at org.apache.mina.common.DefaultIoFilterChain$EntryImpl$1.messageReceiv        ed(DefaultIoFilterChain.java:823)
        at org.apache.mina.common.IoFilterEvent.fire(IoFilterEvent.java:54)
        at org.apache.mina.common.IoEvent.run(IoEvent.java:62)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec                                             
utor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor                                             
.java:907)
        at java.lang.Thread.run(Thread.java:619)从信息上看,是对映射文件解析的原因,我在网上google了下,从相关的信息上却修改,并没有发现问题,请大大们帮帮看看。
我的实体映射文件如下<?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">
<!-- 
海盗工作室
-->
<hibernate-mapping>
<class  name="com.bingo.server.barback.entiy.Barback" table="barback"
catalog="game" lazy="false">
<id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="native" />
        </id>
<property name="header" type="java.lang.String">
<column name="header" length="20" />
</property>
<property name="aide" type="java.lang.String">
<column name="aide" length="20" />
</property>
<property name="commissar" type="java.lang.String">
<column name="commissar" length="20" />
</property>
<property name="name" type="java.lang.String">
<column name="name" length="20" />
</property>
<property name="level" type="java.lang.Integer">
<column name="level" />
</property>
<property name="totalgamemoney" type="java.lang.Integer">
<column name="totalgamemoney" />
</property>
<property name="lasttotalgamemonry" type="java.lang.Integer">
<column name="lasttotalgamemonry" />
</property>
<property name="itemnpc" type="java.lang.Integer">
<column name="item_npc" />
</property>
</class>
</hibernate-mapping>实体类如下:public class Barback implements java.io.Serializable {
 private Integer id;
  private Integer level;
  private Integer totalgamemoney;
  private Integer lasttotalgamemonry;
  private String header;
  private String aide;
  private String commissar;
  private String name;
  private int itemnpc;
  private String notenough;
  private String creattime;
  
public Barback() {
} public Integer getLevel() {
return this.level;
} public void setLevel(Integer level) {
this.level = level;
}
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getHeader() {
return header;
} public void setHeader(String header) {
this.header = header;
} public String getAide() {
return aide;
} public void setAide(String aide) {
this.aide = aide;
} public String getCommissar() {
return commissar;
} public void setCommissar(String commissar) {
this.commissar = commissar;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getTotalgamemoney() {
return totalgamemoney;
} public void setTotalgamemoney(Integer totalgamemoney) {
this.totalgamemoney = totalgamemoney;
} public Integer getLasttotalgamemonry() {
return lasttotalgamemonry;
} public void setLasttotalgamemonry(Integer lasttotalgamemonry) {
this.lasttotalgamemonry = lasttotalgamemonry;
}

public Integer getItemnpc() {
return itemnpc;
} public void setItemnpc(Integer itemnpc) {
this.itemnpc = itemnpc;
} public String getNotenough()
{
return notenough;
}

public void setNotenough(String notenough)
{
this.notenough = notenough;
}

public String getCreattime()
{
return creattime;
}

public void setCreattime(String creattime)
{
this.creattime = creattime;
}}

解决方案 »

  1.   

    数据结够的图片地址太长,请到我空间里查看 http://s16.photo.store.qq.com/http_imgload.cgi?/rurl4_b=d864004039f357f701d05231ff6709311c9be9267bd32e0c83f411d0c5e20ef7363085de78b8b42004545c10bf78d2d437bdccd90ce65e25767b51e5ffad9e892380eef87ce7ccac3acf10d46945c45ef6d45c76
      

  2.   

    错误在你的hibernate.cfg.xml里面,你的Barback.hbm.xml在那个文件里申明了两次吧。
      

  3.   

    hibernate.cfg.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <!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.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
        <property name="hibernate.cache.use_query_cache">true</property>
            <property name="hibernate.cache.use_second_level_cache">true</property>
        <property name="net.sf.ehcache.configurationResourceName">classpath:ehcache.xml</property>
          
            <property name="connection.username">tonyue</property>
            <property name="connection.url">jdbc:oracle:thin:@61.147.117.135:1521:orcl</property>
            <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
            <property name="myeclipse.connection.profile">Oracle</property>
            <property name="connection.password">tonyue306309</property>
            <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
     
      <mapping resource="com/bingo/server/barback/entiy/Barback.hbm.xml" />
    <mapping resource="com/bingo/server/friend/entiy/Friend.hbm.xml" />
    <mapping resource="com/bingo/server/user/entiy/Gameuser.hbm.xml" /> 
    <mapping resource="com/bingo/server/log/entiy/Logs.hbm.xml" />
    <mapping resource="com/bingo/server/pet/entiy/Pet.hbm.xml" />
            <mapping resource="com/bingo/server/blacklist/entiy/Blacklist.hbm.xml"/>
            <mapping resource="com/bingo/server/placard/entiy/Placard.hbm.xml"/>
            <mapping resource="com/bingo/server/item/entiy/Useritemlist.hbm.xml"/>
            <mapping resource="com/bingo/server/item/entiy/Item.hbm.xml"/>
            <mapping resource="com/bingo/server/barbackapplylist/entiy/BarbackApplyList.hbm.xml"/>
       
        <class-cache  class="com.bingo.server.barback.entiy.Barback"     usage="nonstrict-read-write"/>
        <class-cache  class="com.bingo.server.friend.entiy.Friend"       usage="read-write"/>
        <class-cache  class="com.bingo.server.user.entiy.Gameuser"       usage="read-write"/> 
        <class-cache  class="com.bingo.server.log.entiy.Logs"            usage="read-write"/>
        <class-cache  class="com.bingo.server.pet.entiy.Pet"             usage="read-write"/>
        <class-cache  class="com.bingo.server.blacklist.entiy.Blacklist" usage="read-write"/>
        <class-cache  class="com.bingo.server.placard.entiy.Placard"     usage="read-write"/>
        <class-cache  class="com.bingo.server.item.entiy.Useritemlist"   usage="nonstrict-read-write"/>
        <class-cache  class="com.bingo.server.item.entiy.Item"           usage="nonstrict-read-write"/>
        <class-cache  class="com.bingo.server.barbackapplylist.entiy.BarbackApplyList" usage="read-write"/>

    </session-factory>
    </hibernate-configuration>
    这是我的hibernate配置文件。我不太明白楼上的师兄所说的错误是在哪?麻烦帮忙看下吧
      

  4.   

    我看了你的数据结构的图,映射的列名不一致吧。<property name="header" type="java.lang.String">
                <column name="header" length="20" />
            </property>映射的column name是 header,但是你数据库里的列名是B_HEADER,怎么不一样?
    这个映射文件莫非是你自己写的为什么不用工具去生成呢?