异常信息
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'DataSource' defined in file [C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\demo\WEB-INF\classes\applicationContext.xml]: Unsatisfied dependency expressed through bean property 'logWriter': Set this property value or disable dependency checking for this bean.at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.checkDependencies(AbstractAutowireCapableBeanFactory.java:1183).

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1004)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:470)
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:217)
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:429)
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.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
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)这里是applicationcontext.xml配置内容
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
default-autowire="byName" default-dependency-check="objects"> <bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
dependency-check="none">
<property name="location">
<value>classpath:/conf/db_cfg.properties
</value>
</property>
</bean> <bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>${jdbc.driverClassName}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property> <property name="username">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
<property name="maxActive">
<value>${jdbc.maxActive}</value>
</property>
<property name="maxIdle">
<value>${jdbc.maxIdle}</value>
</property>
<property name="maxWait">
<value>${jdbc.maxWait}</value>
</property>
<property name="minEvictableIdleTimeMillis">
<value>${jdbc.minEvictableIdleTimeMillis}
</value>
</property>
<property name="timeBetweenEvictionRunsMillis">
<value>${jdbc.timeBetweenEvictionRunsMillis}
</value>
</property>
</bean> <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
dependency-check="none">
<property name="dataSource">
<ref local="DataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}
</prop>
<prop key="hibernate.connection.pool_size">${hibernate.connection.pool_size}
</prop>
<prop key="hibernate.connection.useUnicode">true</prop>
<prop key="hibernate.connection.characterEncoding">UTF-8</prop>

</props>
</property>
<property name="mappingDirectoryLocations">
<list> </list>
</property>
</bean></beans>
web.xml文件内容如下<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- spring -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:/applicationContext*.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>com.support.web.filter.SetCharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>求助啊求助。

解决方案 »

  1.   

     <!-- spring -->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:/applicationContext*.xml</param-value>
      </context-param>
       spring的子配置文件可以这样搞?  没见过  ?
         即使可以   那么你的子配置文件呢?
       web.xml启动是监听不到  自然就报错了
      

  2.   

    最好是搞成这样滴:<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    /WEB-INF/config/spring/applicationContext.xml
    /WEB-INF/config/spring/appContextService_user.xml
    。。
                 </param-value>
    </context-param>
      

  3.   

    把你其他的几个文件applicationContext*.xml贴出来
      

  4.   

    是不是web.xml中<filter>与<servlet>的顺序有问题,调换一下顺序试试。
      

  5.   

    把default-dependency-check="objects"去掉试下
      

  6.   

    把这一段放到最前面,并且最好把classpath:applicationContext*.xml的斜线去掉。
      

  7.   

    看异常是因为DataSource这个bean创建失败,可以试一下:
      

  8.   

    整个工程只有一个applicationcontent文件,另外如果我删除了以下这段就不再报异常了,其他文件可你的那个没有错误的。诶<bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName">
                <value>${jdbc.driverClassName}</value>
            </property>
            <property name="url">
                <value>${jdbc.url}</value>
            </property>        <property name="username">
                <value>${jdbc.username}</value>
            </property>
            <property name="password">
                <value>${jdbc.password}</value>
            </property>
            <property name="maxActive">
                <value>${jdbc.maxActive}</value>
            </property>
            <property name="maxIdle">
                <value>${jdbc.maxIdle}</value>
            </property>
            <property name="maxWait">
                <value>${jdbc.maxWait}</value>
            </property>
            <property name="minEvictableIdleTimeMillis">
                <value>${jdbc.minEvictableIdleTimeMillis}
                </value>
            </property>
            <property name="timeBetweenEvictionRunsMillis">
                <value>${jdbc.timeBetweenEvictionRunsMillis}
                </value>
            </property>
        </bean>    <bean id="sessionFactory"
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
            dependency-check="none">
            <property name="dataSource">
                <ref local="DataSource" />
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                    <prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}
                    </prop>
                    <prop key="hibernate.connection.pool_size">${hibernate.connection.pool_size}
                    </prop>
                    <prop key="hibernate.connection.useUnicode">true</prop>
                    <prop key="hibernate.connection.characterEncoding">UTF-8</prop>
                    
                </props>
            </property>
            <property name="mappingDirectoryLocations">
                <list>            </list>
            </property>
        </bean>
      

  9.   

    整个工程只有一个applicationcontent文件,另外如果我删除了以下这段就不再报异常了,其他文件可你的那个没有错误的。诶<bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName">
                <value>${jdbc.driverClassName}</value>
            </property>
            <property name="url">
                <value>${jdbc.url}</value>
            </property>        <property name="username">
                <value>${jdbc.username}</value>
            </property>
            <property name="password">
                <value>${jdbc.password}</value>
            </property>
            <property name="maxActive">
                <value>${jdbc.maxActive}</value>
            </property>
            <property name="maxIdle">
                <value>${jdbc.maxIdle}</value>
            </property>
            <property name="maxWait">
                <value>${jdbc.maxWait}</value>
            </property>
            <property name="minEvictableIdleTimeMillis">
                <value>${jdbc.minEvictableIdleTimeMillis}
                </value>
            </property>
            <property name="timeBetweenEvictionRunsMillis">
                <value>${jdbc.timeBetweenEvictionRunsMillis}
                </value>
            </property>
        </bean>    <bean id="sessionFactory"
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
            dependency-check="none">
            <property name="dataSource">
                <ref local="DataSource" />
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                    <prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}
                    </prop>
                    <prop key="hibernate.connection.pool_size">${hibernate.connection.pool_size}
                    </prop>
                    <prop key="hibernate.connection.useUnicode">true</prop>
                    <prop key="hibernate.connection.characterEncoding">UTF-8</prop>
                    
                </props>
            </property>
            <property name="mappingDirectoryLocations">
                <list>            </list>
            </property>
        </bean>
      

  10.   

    整个工程只有一个applicationcontent文件,另外如果我删除了以下这段就不再报异常了,其他文件可你的那个没有错误的。诶<bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName">
                <value>${jdbc.driverClassName}</value>
            </property>
            <property name="url">
                <value>${jdbc.url}</value>
            </property>        <property name="username">
                <value>${jdbc.username}</value>
            </property>
            <property name="password">
                <value>${jdbc.password}</value>
            </property>
            <property name="maxActive">
                <value>${jdbc.maxActive}</value>
            </property>
            <property name="maxIdle">
                <value>${jdbc.maxIdle}</value>
            </property>
            <property name="maxWait">
                <value>${jdbc.maxWait}</value>
            </property>
            <property name="minEvictableIdleTimeMillis">
                <value>${jdbc.minEvictableIdleTimeMillis}
                </value>
            </property>
            <property name="timeBetweenEvictionRunsMillis">
                <value>${jdbc.timeBetweenEvictionRunsMillis}
                </value>
            </property>
        </bean>    <bean id="sessionFactory"
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
            dependency-check="none">
            <property name="dataSource">
                <ref local="DataSource" />
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                    <prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}
                    </prop>
                    <prop key="hibernate.connection.pool_size">${hibernate.connection.pool_size}
                    </prop>
                    <prop key="hibernate.connection.useUnicode">true</prop>
                    <prop key="hibernate.connection.characterEncoding">UTF-8</prop>
                    
                </props>
            </property>
            <property name="mappingDirectoryLocations">
                <list>            </list>
            </property>
        </bean>