Spring batch Springbatch3.0.1的xml模式?
我试图在spring 3.0.1中完成spring批处理,并且在类路径中包含了足够的JAR。当我试图使用命令行作业运行程序运行项目时,我收到一个错误,该错误显示为spring 3.0.1的xml模式不匹配。我有3个不同的xml文件,如下所示 ApplicationContext.xml 我的lib包含以下jarSpring 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
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>