2014-03-06 92 views
4

是否有任何使用純java配置(無xml)的spring xd的示例。 我創建了一個簡單的tasklet,jarre相同(whojob.jar)並將其放入lib文件夾。 xml配置如下。我把它放在一個名爲whojob的文件中,該文件位於modules/job文件夾中,並且與我的whojob.jar一起震動。 當我嘗試創建一個作業時: - (:> job create --name mywhojob --definition「whojob」)我得到錯誤: 引起:org.springframework.beans.factory.BeanCreationException:創建名稱爲bean的錯誤'org.springframework.integration.config.TransformerFactoryBean#0':無法創建類型爲[org.springframework.xd.dirt.plugins.job的內部bean'org.springframework.xd.dirt.plugins.job.JobLaunchRequestTransformer#0'。 JobLaunchRequestTransformer],同時設置bean屬性'targetObject';嵌套的異常是org.springframework.beans.factory.BeanCreationException:在類路徑資源[META-INF/spring-xd/plugins中定義的名稱'org.springframework.xd.dirt.plugins.job.JobLaunchRequestTransformer#0'中創建bean時出錯/job/job-module-beans.xml]:設置構造函數參數時無法解析對bean「jobFactoryBean」的引用;嵌套異常是org.springframework.beans.factory.BeanCreationException:創建名爲'jobFactoryBean'的Bean時出錯:FactoryBean在創建對象時拋出異常;嵌套的異常是java.lang.IllegalStateException:在註冊表中找不到提供的密鑰'mywhojob.job'的批處理作業。 我的xml配置如下。如果可能,我想要一個純java解決方案。 由於如何使用java配置在spring-xd中創建作業

<?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> 
+0

截至目前,我不相信Spring XD中的XD支持java配置作業定義。但是,這不是你錯誤的原因。你使用的是什麼版本的XD?早期版本的Spring XD要求XML定義中作業的id是job,這不是你在這裏所擁有的。我會以此開始。 –

+0

嗨邁克爾我正在使用XD版本1.0.0.M5。我對框架不太熟悉。我設法得到一個獨立的春天批處理項目工作(其中有所有Java配置)。然後我將java配置轉換爲它的xml版本。我有一個JobRepositoryFactoryBean的引用,然後將其轉換爲一個Spring xd模塊。 – user3304825

+0

請參閱https://github.com/spring-projects/spring-xd/issues/1216獲取相關票券。 – btiernay

回答

1

下面是一個使用XD工作與在外部jar文件中定義的批微進程的樣品。

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

要創建罐子,從回購根目錄下,只需要運行:./gradlew建立

爲了方便,我也複製了工作模塊「myjob」(使用上述tasklet)加入回購。您可以將此'myjob'複製到$ XD_HOME/modules/job /中。

試試用XD版本M6或最新的主人,讓我們知道你是否有任何問題。

+1

這不是「java配置」,因爲您使用的是Spring xml配置文件。 – btiernay

相關問題