严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [com/mypro/beans/UserBean.hbm.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1336)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:471)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.io.FileNotFoundException: class path resource [com/mypro/beans/UserBean.hbm.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:142)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:631)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1367)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1333)
... 30 more在tomcat启动时报出这个异常,说我的UserBean.xml文件找不到,但是我在com.mypro.beans这个包存在这个文件的。所以不知道是什么错误,请大家帮帮忙,郁闷很久了

解决方案 »

  1.   

    你得目录结构是怎样得
    applicationContext.xml在哪个目录下
      

  2.   

    /mypro/beans/UserBean.hbm.xml 此文件不存在
      

  3.   

    在tomcat启动时报出这个异常,说我的UserBean.xml文件找不到,但是我在com.mypro.beans这个包存在这个文件的。所以不知道是什么错误,请大家帮帮忙,郁闷很久了你是笔误还是你com.mypro.beans包下就是命名的UserBean.xml,应该是UserBean.hbm.xml,如果是笔误,把你的applicationContext.xml贴出来看看
      

  4.   

    很明显  com/mypro/beans/UserBean.hbm.xml这个文件不存在 而你在在配置sessionFactory的时候加了这个
      

  5.   

    恩,是我的笔误,是UserBean.hbm.xml.
    我的applicationContext.xml是放在WebContent/WEB-INF/下面
    代码晚上贴出来,现在拿不到,先谢谢大家,希望我的问题能解决
      

  6.   

      贴下 applicationContext.xml
        这里面你配置的文件内容
       
      

  7.   

    [com/mypro/beans/UserBean.hbm.xml] cannot be opened because it does not exist 
    文件不存在。  你在sprinig配置文件中配置了
    但是userBean.hbm.xml不存在。
      

  8.   

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
               http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
               http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
     <!-- <context:annotation-config/>  -->
             
       <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="org.gjt.mm.mysql.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/itcast?useUnicode=true&amp;characterEncoding=UTF-8" />
    <property name="username" value="root" />
    <property name="password" value="123456" />
         <!-- 连接池启动时的初始值 -->
    <property name="initialSize" value="1" />
     <!-- 连接池的最大值 -->
    <property name="maxActive" value="500" />
     <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
    <property name="maxIdle" value="2" />
     <!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
    <property name="minIdle" value="1" />
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="mappingResources">
            <list>
                <value>com/mypro/beans/UserBean.hbm.xml</value>
            </list>
        </property>
         
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">false</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
    </property>
    </bean>

    <bean id="userDaoImpl" class="com.mypro.dao.impl.UserDaoImpl">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>

    <bean id="userServiceImpl" class="com.mypro.service.impl.UserServiceImpl">
        <property name="userDaoImpl" ref="userDaoImpl"></property>
    </bean>

    <bean id="saveUserAction" class="com.mypro.action.UserAction">
        <property name="userServiceImpl" ref="userServiceImpl"></property>
    </bean>
    </beans>这个就是我的applicationContext.xml文件的内容,UserBean.hbm.xml这个文件是存在的。
      

  9.   

    “com/mypro/beans/UserBean.hbm.xml”这个不是应该放在hibernat.xml中吗?
    一个配置文件怎么会把配置进来呢,那不是死循环了么,不知道。
      

  10.   

    改成这样试试
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                    <property name="dataSource" ref="dataSource"> </property> 
    <property name="configLocation"
    value="classpath:hibernate.cfg.xml">
    </property>
    </bean> 我认为你缺少了<property name="configLocation"
    value="classpath:hibernate.cfg.xml">
    这行
      

  11.   

    三个框架整合,hibernate的配置文件不是交给spring管理了吗.不用hibernate.cfg.xml这个文件的了
      

  12.   


    还可以这么个用法啊 整合SSH框架 你不让它们分工 写到一个配置文件里不累啊 
      

  13.   

    首先跑到你项目在tomcat的真实路径下看看,有没有在com/mypro/beans/文件夹下有UserBean.hbm.xml文件,有的时候eclipse没编译,需要clean一下,再不行在<value>classpath*:com/mypro/beans/UserBean.hbm.xml </value> 试试
      

  14.   

    问题大概解决了,貌似是applicationContext.xml文件弄错了。多谢大家
      

  15.   

    这个是IDE的开发版本造成的,  Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: class path resource [com/mypro/beans/UserBean.hbm.xml] cannot be opened because it does not exist 
    看这些描述,找不到url路径,  你更换IDE版本应该没有什么问题了
      

  16.   

    可能是jar包冲突,asm.jar和 asm-1.2.7.jar在导入的时候产生冲突,去掉带后缀的asm-1.2.7.jar包