0

在执行我的工作时,我遇到了异常

设置 bean 属性“dataSource”时无法解析对 bean“springbatch.readerDataSource”的引用;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springbatch.readerDataSource' is defined at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329)

注意——我没有创建单独的阅读器文件。只是使用 JdbcCursorItemReader。

我的配置文件

<bean id="itemReader" 
        class="org.springframework.batch.item.database.JdbcCursorItemReader" scope="step">
        <property name="dataSource" ref="springbatch.batchDataSource"/>
        <property name="sql"  
                  value=
                    "select Cust_Id  from Customer   "/>
        <property name="rowMapper">
            <bean class="com.insurance.premiumrecalculation.batch.CustDto" />
         </property>
    </bean>

    <bean id="policy.premium.recalculation.PremiumRecalculationWriter" 
        class="com.insurance.premiumrecalculation.batch.PremiumRecalculationProcessWriter" scope="step"/>

    <batch:job id="policy.job.premiumRecalculation" 
        job-repository="springbatch.jobRepository" parent="springbatch.job.baseJob">

        <batch:step id="policy.step.premiumrecalculation" parent="springbatch.step.baseStep">
            <batch:tasklet allow-start-if-complete="false" transaction-manager="powTransactionManager">                                   
                <batch:chunk commit-interval="10"                    
                    reader="itemReader"
                    writer="policy.premium.recalculation.PremiumRecalculationWriter"/>                    
            </batch:tasklet>
        </batch:step>
    </batch:job>

提前致谢

4

1 回答 1

0

此错误的来源是以下行:

<property name="dataSource" ref="springbatch.batchDataSource"/>

这意味着您需要将 id 为“springbatch.batchDataSource”的 bean 定义配置为您的环境的数据源,但似乎不存在。您可以使用以下内容作为模板;不要忘记提供您的数据库驱动程序和连接信息。

<bean id="springbatch.batchDataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
    <property name="url" value="jdbc:hsqldb:mem:testdb" />
    <property name="username" value="sa" />
    <property name="password" value="" />
</bean>
于 2013-02-15T11:11:00.587 回答