Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring batch Springbatch3.0.1的xml模式?_Spring Batch - Fatal编程技术网

Spring batch Springbatch3.0.1的xml模式?

Spring batch Springbatch3.0.1的xml模式?,spring-batch,Spring Batch,我试图在spring 3.0.1中完成spring批处理,并且在类路径中包含了足够的JAR。当我试图使用命令行作业运行程序运行项目时,我收到一个错误,该错误显示为spring 3.0.1的xml模式不匹配。我有3个不同的xml文件,如下所示 ApplicationContext.xml 我的lib包含以下jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.apache.commons.lang-sources-2

我试图在spring 3.0.1中完成spring批处理,并且在类路径中包含了足够的JAR。当我试图使用命令行作业运行程序运行项目时,我收到一个错误,该错误显示为spring 3.0.1的xml模式不匹配。我有3个不同的xml文件,如下所示

ApplicationContext.xml

我的lib包含以下jar

com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.apache.commons.lang-sources-2.1.0.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.log4j-1.2.15.jar
commons-beanutils-1.8.3.jar
commons-codec-1.3.jar
commons-collections-3.2.jar 
commons-digester-1.8.jar
commons-lang3-3.1.jar
commons-logging-1.1.1.jar
org.springframework.aop-3.0.1.RELEASE-A.jar
org.springframework.asm-3.0.1.RELEASE-A.jar
org.springframework.aspects-3.0.1.RELEASE-A.jar
org.springframework.beans-3.0.1.RELEASE-A.jar
org.springframework.context-3.0.1.RELEASE-A.jar
org.springframework.context.support-3.0.1.RELEASE-A.jar
org.springframework.core-3.0.1.RELEASE-A.jar
org.springframework.expression-3.0.1.RELEASE-A.jar
org.springframework.web-3.0.1.RELEASE-A.jar
org.springframework.web.servlet-3.0.1.RELEASE-A.jar
spring-batch-core-2.2.0.RELEASE.jar
spring-batch-infrastructure-2.2.0.RELEASE.jar

提前感谢您的回复。

您的类路径上有Spring Batch 2.2.0.RELEASE JAR,但您没有在模式中指定该版本。更新以使用这些版本,您会没事的

作为旁注,您不在配置中使用模式有什么原因吗?在配置批处理组件时,不使用名称空间或工厂bean是很困难的。例如,而不是:

<bean
    class="org.springframework.batch.core.repository.support.SimpleJobRepository"
    id="jobRepository">
    <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 class="org.springframework.batch.core.job.SimpleJob" id="mySimpleJob">
    <property name="name" value="mySimpleJob" />
    <property name="steps">
        <list>
            <bean parent="taskletStep">
                <property name="tasklet" ref="helloTasklet" />
            </bean>
            <bean parent="taskletStep">
                <property name="tasklet" ref="createdByTasklet" />
            </bean>
        </list>
    </property>
    <property name="jobRepository" ref="jobRepository" />
</bean>

您可以这样做:

<bean id="jobRepository" class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="transactionManager" ref="transactionManager"/>
</bean>

我们还为作业配置提供了命名空间支持。而不是:

<bean
    class="org.springframework.batch.core.repository.support.SimpleJobRepository"
    id="jobRepository">
    <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 class="org.springframework.batch.core.job.SimpleJob" id="mySimpleJob">
    <property name="name" value="mySimpleJob" />
    <property name="steps">
        <list>
            <bean parent="taskletStep">
                <property name="tasklet" ref="helloTasklet" />
            </bean>
            <bean parent="taskletStep">
                <property name="tasklet" ref="createdByTasklet" />
            </bean>
        </list>
    </property>
    <property name="jobRepository" ref="jobRepository" />
</bean>

你应该试试这个:

<batch:job id="mySimpleJob">
    <batch:step id="step1" next="step2">
        <batch:tasklet ref="helloTasklet"/>
    </batch:step>
    <batch:step id="step2">
        <batch:tasklet ref="createdByTasklet"/>
    </batch:step>
</batch:job>


名称空间处理一些细节,如自动连接作业存储库和事务管理器等。我建议您在此处查看Spring批处理文档:

我已经尝试了springbatch3.0.jar。但我哪儿也找不到。你能把链接发给我吗?Spring第三批还没有发布。本周早些时候,我们发布了第一个候选版本。您可以了解任何项目的最新版本。Spring Batch的页面如下所示:
<bean class="org.springframework.batch.core.job.SimpleJob" id="mySimpleJob">
    <property name="name" value="mySimpleJob" />
    <property name="steps">
        <list>
            <bean parent="taskletStep">
                <property name="tasklet" ref="helloTasklet" />
            </bean>
            <bean parent="taskletStep">
                <property name="tasklet" ref="createdByTasklet" />
            </bean>
        </list>
    </property>
    <property name="jobRepository" ref="jobRepository" />
</bean>
<batch:job id="mySimpleJob">
    <batch:step id="step1" next="step2">
        <batch:tasklet ref="helloTasklet"/>
    </batch:step>
    <batch:step id="step2">
        <batch:tasklet ref="createdByTasklet"/>
    </batch:step>
</batch:job>