0

突然遇到spring创建bean失败的问题。webapp 已经部署并且已经运行了几个月。但是,以下错误消息突然出现。它可以通过重新启动 web 应用程序来解决,但再次出现时没有任何提示。有人知道这个案子吗?

Tomcat 6 用于托管 webapp。

[2013/05/03 12:02:56:421 HKT] ajp-8009-42 org.ajax4jsf.webapp.BaseXMLFilter(227) - Exception in the filter chain
javax.servlet.ServletException: Error creating bean with name 'reportGenerationBean' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Cannot resolve reference to bean 'scheduleBean' while setting bean property 'scheduleBean'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scheduleBean': Invocation of init method failed; nested exception is java.lang.ArrayIndexOutOfBoundsException

applicationContext.xml 如下

<?xml version="1.0" encoding="UTF-8"?>
<beans 
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    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/tx 
        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <context:property-placeholder location="classpath*:webapp.properties,classpath*:env_prod.properties"/>

    <context:annotation-config />

    <bean id="facesUtils" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="staticMethod">
            <value>com.webapp.util.FacesUtils.init</value>
        </property>
        <property name="arguments">
            <list>
                <value>com.webapp.config.SpringBeanEnum</value>
                <value>com.webapp.config.FacesBeanEnum</value>
            </list>
        </property>
    </bean>


    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory"><ref local="inspectbookSessionFactory"/></property>
    </bean>

    <context:component-scan base-package="com.webapp.bo, com.webapp.service" />

    <tx:annotation-driven transaction-manager="transactionManager" />

    <bean id="hibernateDAO" abstract="true">
        <property name="sessionFactory"><ref local="inspectbookSessionFactory"/></property>
    </bean>

    <!-- Temporary Setting -->
    <bean id="ItemSearchBeanDao" class="com.webapp.dao.tmp.ItemSearchBeanDao" parent="hibernateDAO">
        <property name="maxRecordNo" value="${no_of_record.order}"/>
    </bean>
    <bean id="BookedSearchBeanDao" class="com.webapp.dao.tmp.BookedSearchBeanDao" parent="hibernateDAO">
        <property name="maxRecordNo" value="${no_of_record.booked}"/>
    </bean>
    <bean id="ScheduleBeanDao" class="com.webapp.dao.tmp.ScheduleBeanDao" parent="hibernateDAO"></bean>
    <bean id="WhItemSearchBeanDao" class="com.webapp.dao.tmp.WhItemSearchBeanDao" parent="hibernateDAO">
        <property name="maxRecordNo" value="${no_of_record.whItem}"/>
    </bean>




    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="-secret-"/>
    </bean>

    <bean id="EmailUtil" class="com.webapp.util.EmailUtil">
      <property name="mailSender" ref="mailSender"/>
    </bean>

    <bean id="freeMarkerTemplateMailer" class="com.webapp.bo.email.impl.FreeMarkerTemplateMailer">
      <property name="mailSender" ref="mailSender"/>
    </bean>

    <bean id="emailService" class="com.webapp.bo.email.impl.EmailServiceImpl" >
        <property name="orgunitDao" ref="OrgunitDAO"/>
        <property name="contactMethodDao" ref="ContactMethodDAO"/>
        <property name="mailer" ref="freeMarkerTemplateMailer"/>
    </bean>

    <bean id="scheduleEmail" class="com.webapp.bo.schedule.impl.ScheduleEmailImpl" >
        <property name="orgunitDao" ref="OrgunitDAO"/>
        <property name="scheduleBeanDao" ref="ScheduleBeanDao"/>
        <property name="emailService" ref="emailService"/>
    </bean>

    <bean name="scheduleJob" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="com.webapp.service.schedule.ScheduleJob" />
        <property name="jobDataAsMap">
            <map>
                <entry key="scheduleEmail" value-ref="scheduleEmail" />
            </map>
        </property>
    </bean> 



<!-- JSF backing bean START -->
    <bean id="vendorSearchBean" class="com.webapp.service.search.item.VendorSearchBean" scope="session">
        <property name="maxRecordNo" value="${no_of_record.vendor}"/>
    </bean>

    <bean id="itemSearchBean" name="itemSearchBean" class="com.webapp.service.search.item.NewItemSearchBean" scope="session">
        <property name="maxRecordNo" value="${no_of_record.order}"/>
        <property name="popupBean" ref="popupBean"/>
    </bean>

    <bean id="itemSearchPopupBean" name="itemSearchPopupBean" class="com.webapp.service.search.item.NewItemSearchBean" scope="session">
        <property name="maxRecordNo" value="${no_of_record.order}"/>
    </bean>

    <bean id="detailBean" class="com.webapp.service.detail.DetailBean" scope="session">
        <property name="itemSearchBean" ref="itemSearchBean"/>
        <property name="itemSearchPopupBean" ref="itemSearchPopupBean"/>
        <property name="popupBean" ref="popupBean"/>
    </bean>

    <bean id="bookedSearchBean" class="com.webapp.service.search.booked.BookedSearchBean" scope="session">
        <property name="maxRecordNo" value="${no_of_record.booked}"/>
    </bean>

    <bean id="scheduleConfirmBean" class="com.webapp.service.schedule.ScheduleConfirmBean" scope="session">
        <property name="popupBean" ref="popupBean"/>
    </bean>

    <bean id="scheduleBean" class="com.webapp.service.search.schedule.ScheduleBean" scope="session">
        <property name="popupBean" ref="popupBean"/>
    </bean>

    <bean id="dropBean" class="com.webapp.service.search.schedule.DropBean" scope="request">
        <property name="scheduleBean" ref="scheduleBean"/>
    </bean>

    <bean id="inspectContactBean" class="com.webapp.service.detail.contact.InspectContactBean" scope="session">
        <property name="detailBean" ref="detailBean"/>
    </bean> 

    <bean id="inspectLocationBean" class="com.webapp.service.detail.contact.InspectLocationBean" scope="session">
        <property name="detailBean" ref="detailBean"/>
    </bean> 

    <bean id="whItemSearchBean" class="com.webapp.service.search.warehouse.WhItemSearchBean" scope="session">
        <property name="maxRecordNo" value="${no_of_record.whItem}"/>
        <!--<property name="propertiesUtil" ref="propertiesUtil"/>-->
    </bean>

    <!-- Autocomplete -->
    <bean id="autocomplete" class="com.webapp.service.common.AutocompleteBean" scope="session"></bean>

    <!-- PackingListBean -->
    <bean id="packingListBean" class="com.webapp.service.common.PackingListBean" scope="session">
        <property name="itemSearchBean" ref="itemSearchBean"/>
        <property name="popupBean" ref="popupBean"/>
    </bean>

    <!-- Report Bean -->
    <bean id="reportGenerationBean" class="com.webapp.service.report.ReportGenerationBean" scope="request">
        <property name="itemSearchBean" ref="itemSearchBean"/>
        <property name="packingListBean" ref="packingListBean"/>
        <property name="scheduleBean" ref="scheduleBean"/>
    </bean>

    <!-- popupBean -->
    <bean id="popupBean" class="com.webapp.service.common.PopupControlBean" scope="session">
    </bean>

<!-- JSF backing bean  END  -->  

</beans>
4

0 回答 0