2012-04-03 6 views
0

Я разрабатываю приложение с весной 3. Я делаю некоторые тесты с весенней периодичностью. Это мое определение работы:Тест весенней партии ничего не делать

job.xml:

<bean id="fabio" class="com.firststepteam.handshake.jobs.PrintTasklet"> 
    <property name="message" value="Fabio"/> 
</bean> 

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

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

Это, как я настроить пакет:

периодического context.xml:

<bean id="txManager" 
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 

<batch:job-repository id="jobRepository" 
    data-source="dataSource" transaction-manager="txManager" 
    isolation-level-for-create="SERIALIZABLE" table-prefix="BATCH_" 
    max-varchar-length="1000" /> 

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

Цепочка, которую я хочу запустить:

public class PrintTasklet implements Tasklet{ 

private String message; 

public void setMessage(String message) { 
    this.message = message; 
} 

public ExitStatus execute() throws Exception { 
    System.out.println("Hello "+message); 
    return ExitStatus.COMPLETED; 
} 

Это, как я пытаюсь запустить задание:

mvn clean compile exec:java -Dexec.mainClass=org.springframework.batch.core.launch.support.CommandLineJobRunner -Dexec.args="job.xml simpleJob" 

Ничего не происходит. Без исключений. Выполнение задания сохраняется в базе данных правильно. Но моя задача не работает. Что я здесь делаю неправильно?

Я использую maven 2.2.1 на Ubuntu 10.10. Spring Batch версия 2.1.8

+0

, пожалуйста, добавьте дополнительную информацию для вашей среды, например. операционная система? Версия Maven и особенно версия весенней версии, в 3.0. + Tasklet работает с Repeatstatus, а не с Exitstatus, см. Https://github.com/langmi/spring-batch-tutorials/blob/master/hello-world-java/src /main/java/de/langmi/spring/batch/tutorials/helloworld/HelloWorldTasklet.java –

+0

Информация обновлена – Fabio

ответ

0

Проблема решена. Как предлагает Майкл Ланге, мне просто понравилось:

@Override 
public RepeatStatus execute(StepContribution contribution, 
          ChunkContext chunkContext) throws Exception { 

    // why not using println? because it makes testing harder, *nix and 
    // windows think different about new line as in \n vs \r\n 
    System.out.print("Hello World! "+message); 

    return RepeatStatus.FINISHED; 
} 

И отлично работает.

Смежные вопросы