SSH整合遇到这个问题,在网上找不到解决方法,特来此拜托大家了.
hibernate.cfg.xml和B.hbm.xml在同一文件夹下.
开发环境是:Eclipse SDK 版本: 3.1.1
JDK是6.0
tomcat是6.0
错误提示如下:2009-3-25 18:24:10 org.apache.catalina.core.StandardContext loadOnStartup
严重: Servlet /bbs3 threw load() exception
org.hibernate.MappingException: Resource: B.hbm.xml not found
at org.hibernate.cfg.Configuration.addResource(Configuration.java:479)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1325)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:651)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1201)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1171)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:284)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:82)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3099)
at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:916)
at org.apache.catalina.manager.HTMLManagerServlet.reload(HTMLManagerServlet.java:536)
at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:114)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
2009-3-25 18:24:16 org.apache.catalina.core.StandardWrapperValve invoke
信息: Servlet action is currently unavailablehibernate.cfg.xml:<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- local connection properties -->
<property name="hibernate.connection.url">
jdbc:mysql://localhost:3306/bbs?useUnicode=true&amp;characterEncoding=utf-8
</property>
<property name="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">admin</property>
<!-- property name="hibernate.connection.pool_size"></property -->
<!-- dialect for MySQL -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory
</property>
<mapping resource="B.hbm.xml" />
</session-factory>
</hibernate-configuration>
B.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" ><hibernate-mapping package="basebean.bean">
<class
name="B"
table="b"
>
<meta attribute="sync-DAO">true</meta>
<id
name="Id"
type="integer"
column="id"
>
<generator class="increment"/>
</id> <property
name="Title"
column="title"
type="string"
not-null="true"
length="45"
/>
<property
name="Content"
column="content"
type="string"
not-null="true"
length="45"
/>
<property
name="Tim"
column="tim"
type="timestamp"
not-null="false"
length="19"
/>
</class>
</hibernate-mapping>

解决方案 »

  1.   

    其中的xml都是用HibernateSynchronizer生成的.
      

  2.   

    看看你部署后这个文件B.hbm.xml位置
      

  3.   

    B.hbm.xml位置在\WEB-INF\src\basebean下,跟hibernate.cfg.xml在同一文件夹下
      

  4.   

    \WEB-INF\src\basebean不是src是\WEB-INF\classes\basebean目录里有没有
      

  5.   

    \WEB-INF\classes\basebean目录都有.
      

  6.   

    谢谢 zhj92lxs我是害虫(NND,要充电) 
    后来我把hibernate.cfg.xml里的<mapping resource="B.hbm.xml" />改成<mapping resource="basebean/B.hbm.xml" />就OK了.
    看来自动化工具也不能太过依赖.
    奇怪的是昨晚我也这样试过,当时不成功,今天才成功.
    谢谢你了.
      

  7.   

    如果我没记错的话,Hibernate的映射文件是放置在classpath中的,按照楼主的写法<mapping resource="B.hbm.xml" />
    B.hbm.xml文件明显应该直接放置在WEB-INF/classes下面。
    楼主放置在\WEB-INF\src\basebean目录下面,这个目录根本不是classpath的一部分,
    楼主如果是想放在\WEB-INF\classes\basebean下面,那么必须这样写:<mapping resource="basebean/B.hbm.xml" />