繁体   English   中英

如何解决Spring Batch错误?

[英]How to resolve Spring Batch Error?

我正在尝试学习用Java编写批处理作业的Spring批处理。 所以我正在使用本教程

现在问题出在我用完所有罐子之后,我开始执行该项目。 这给我带来了一个错误的错误:

INFO: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1e7b1e7b: defining beans [jobLauncher,jobRepository,transactionManager,wordsFWTasklet,numbersFWTasklet,taskletStep,fileWritingJob]; root of factory hierarchy
Sep 3, 2013 8:09:29 AM org.springframework.batch.core.launch.support.CommandLineJobRunner start

SEVERE: Job Terminated in error: Error creating bean with name 'fileWritingJob' defined in class path resource [fileWritingJob.xml]: Initialization of bean failed; nested exception is java.lang.NullPointerException
Throwable occurred: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'fileWritingJob' defined in class path resource [fileWritingJob.xml]: Initialization of bean failed; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:478)

Caused by: java.lang.NullPointerException
at org.springframework.core.GenericTypeResolver.getTypeVariableMap(GenericTypeResolver.java:144)
at org.springframework.core.GenericTypeResolver.resolveReturnType(GenericTypeResolver.java:93)

万一,您想知道我用于配置xml的代码,如下所示:

fileWritingJob.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.xsd">

    <import resource="applicationContext.xml"/>

    <bean id="wordsFWTasklet" class="FileCreatorTasklet">
        <property name="filePath" value="C:\\temp\\words.txt"/>
        <property name="content" value="abcdefghijklmnopqrstuwxyz"/>
    </bean>

    <bean id="numbersFWTasklet" class="FileCreatorTasklet">
        <property name="filePath" value="C:\\temp\\numbers.txt"/>
        <property name="content" value="0123456789"/>
    </bean>

    <bean id="taskletStep" abstract="true"
        class="org.springframework.batch.core.step.tasklet.TaskletStep">
        <property name="jobRepository" ref="jobRepository"/>
    </bean>

    <bean id="fileWritingJob" class="org.springframework.batch.core.job.SimpleJob">
        <property name="name" value="fileWritingJob" />
        <property name="steps">
            <list>
                <bean parent="taskletStep">
                    <property name="tasklet" ref="wordsFWTasklet"/>
                    <property name="transactionManager" ref="transactionManager"/>
                </bean>
                <bean parent="taskletStep">
                    <property name="tasklet" ref="numbersFWTasklet"/>
                    <property name="transactionManager" ref="transactionManager"/>
                </bean>
            </list>
        </property>
        <property name="jobRepository" ref="jobRepository"/>
    </bean>

</beans>

编辑:

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">

    <bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
        <property name="jobRepository" ref="jobRepository"/>
    </bean>

    <bean id="jobRepository" class="org.springframework.batch.core.repository.support.SimpleJobRepository">
        <constructor-arg>
            <bean class="org.springframework.batch.core.repository.dao.MapJobInstanceDao"/>
        </constructor-arg>
        <constructor-arg>
            <bean class="org.springframework.batch.core.repository.dao.MapJobExecutionDao" />
        </constructor-arg>
        <constructor-arg>
            <bean class="org.springframework.batch.core.repository.dao.MapStepExecutionDao"/>
        </constructor-arg>
        <constructor-arg>
            <bean class="org.springframework.batch.core.repository.dao.MapExecutionContextDao"/>
        </constructor-arg>
    </bean>

    <bean id="transactionManager" class="org.springframework.batch.support.transaction.ResourcelessTransactionManager"/>

</beans>

有人可以告诉我我在做什么错吗?

您正在使用哪个版本的spring-batch? 使用2.2.1.RELEASE (和Spring框架的 3.2.3.RELEASE ),此示例可以正常工作! 库(来自Maven)是:

org.springframework

  • 弹簧核心
  • 弹簧豆
  • 春天上下文
  • 弹簧分批芯
  • 弹簧批基础设施

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM