4

有没有使用纯java配置(没有xml)的spring xd的例子。我创建了一个简单的tasklet,将其放入相同的(whojob.jar)并将其放入lib 文件夹中。xml配置如下。我把它放在一个名为 whojob 的文件中,该文件位于 modules/job 文件夹中,并且与我的 whojob.jar 一起受到影响。当我尝试创建工作时:- (:>job create --name mywhojob --definition "whojob") 我收到错误: 原因:org.springframework.beans.factory.BeanCreationException:创建名为 'org 的 bean 时出错.springframework.integration.config.TransformerFactoryBean#0':无法创建 [org.springframework.xd.dirt.plugins.job.JobLaunchRequestTransformer] 类型的内部 bean 'org.springframework.xd.dirt.plugins.job.JobLaunchRequestTransformer#0'同时设置bean属性'targetObject';嵌套异常是 org.springframework.beans。factory.BeanCreationException:在类路径资源 [META-INF/spring-xd/plugins/job/job-module-beans. xml]:在设置构造函数参数时无法解析对 bean 'jobFactoryBean' 的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“jobFactoryBean”的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 java.lang.IllegalStateException: No Batch Job 在注册表中为提供的键“mywhojob.job”找到。我的xml配置如下。如果可能的话,我想要一个纯 Java 解决方案。谢谢 在类路径资源 [META-INF/spring-xd/plugins/job/job-module-beans.xml] 中定义:在设置构造函数参数时无法解析对 bean 'jobFactoryBean' 的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“jobFactoryBean”的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 java.lang.IllegalStateException: No Batch Job 在注册表中为提供的键“mywhojob.job”找到。我的xml配置如下。如果可能的话,我想要一个纯 Java 解决方案。谢谢 在类路径资源 [META-INF/spring-xd/plugins/job/job-module-beans.xml] 中定义:在设置构造函数参数时无法解析对 bean 'jobFactoryBean' 的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“jobFactoryBean”的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 java.lang.IllegalStateException: No Batch Job 在注册表中为提供的键“mywhojob.job”找到。我的xml配置如下。如果可能的话,我想要一个纯 Java 解决方案。谢谢 创建名为“jobFactoryBean”的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 java.lang.IllegalStateException: No Batch Job 在注册表中为提供的键“mywhojob.job”找到。我的xml配置如下。如果可能的话,我想要一个纯 Java 解决方案。谢谢 创建名为“jobFactoryBean”的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 java.lang.IllegalStateException: No Batch Job 在注册表中为提供的键“mywhojob.job”找到。我的xml配置如下。如果可能的话,我想要一个纯 Java 解决方案。谢谢

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:int="http://www.springframework.org/schema/integration"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xmlns:batch="http://www.springframework.org/schema/batch"
xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/integration
    http://www.springframework.org/schema/integration/spring-integration.xsd
    http://www.springframework.org/schema/batch
    http://www.springframework.org/schema/batch/spring-batch.xsd">

<batch:job id="whojob">
    <batch:step id="whojobStep">
        <batch:tasklet ref="whojobXDTasklet" />
    </batch:step>
</batch:job>

<bean id="whojobXDTasklet"
    class=" com.auction.data.batch.job.WhoTasklet" >
    <property name= "who" ref="whoBean"/> 
</bean>

<bean id="whoBean"
    class="com.auction.data.batch.service.Who" >

</bean>

    </beans>
4

1 回答 1

1

这是一个使用 XD 作业和在外部 jar 文件中定义的批处理 tasklet 的示例。

https://github.com/ilayaperumalg/spring-xd-batch-sample

要从 repo 根目录创建 jar,只需运行:./gradlew build

为方便起见,我还将作业模块“myjob”(使用上述 tasklet)复制到 repo 中。你可以把这个'myjob'复制到你的$XD_HOME/modules/job/中。

使用 XD 版本 M6 或最新的 master 尝试一下,如果您有任何问题,请告诉我们。

于 2014-04-25T20:24:08.323 回答