2017-05-22 5 views
0

私は、唯一のライターを持っているステップを持っている春のバッチジョブを書くことが可能かどうか疑問に思っていた。私は春のバッチのドキュメントでは、特定のステップに本質的に必要なものに関するドキュメントを見つけることができません。いいえ、言葉ではシンプルな1ステップスプリングなしバッチジョブ(リーダーなし)(Writerのみ)

public class MyBatchConfiguration { 

@Bean 
public ItemWriter<myInfo> myWriter() { 
    return new MyWriter(); 
} 

@Bean 
public Step myStep(StepBuilderFactory stepBuilderFactory, 
     ItemWriter<? super Object> myWriter, 
     PlatformTransactionManager transactionManager) { 

    return stepBuilderFactory.get("myStep") 
      .chunk(1) 
      .writer(myWriter). 
      transactionManager(transactionManager). 
      build(); 
} 

@Bean 
public Job myBatch(JobBuilderFactory jobs, Step myStep, JobExecutionListener listener) { 

    return jobs.get("myBatch") 
      .incrementer(new RunIdIncrementer()) 
      .flow(exceptionReporterStep) 
      .end() 
      .listener(listener) 
      .build(); 

} 

} 
+0

可能な重複[itemwriterのない春のバッチステップを作成する方法](https://stackoverflow.com/questions/26202241/how-to-write-a-spring-batch-step-without- an-itemwriter) –

答えて

1

は、私のような何かを期待していました。

「チャンク」よりもタスクレットの手順を使用するように思われます。

@Bean 
public Step myStep(StepBuilderFactory stepBuilderFactory, 
     Tasklet myTasklet, 
     PlatformTransactionManager transactionManager) { 

    return stepBuilderFactory.get("myStep") 
      .tasklet(myTasklet) 
      .transactionManager(transactionManager) 
      .build(); 
} 
+0

ありがとうございました!私は前にTaskletsを使用していないが、これは私が必要としているようだ。私は何か問題に遭遇した場合は、私に知らせます。 –

+0

ちょっとDean、私は実際に春のバッチの問題をデバッグする方法を知りません。私の主な方法で "スレッドの例外"メイン "java.lang.NoSuchMethodError"と言っているエラーが発生しています。このようなデバッグのヒントはありますか?私は、仕事のパラメータが適切に作成されているとは思わないし、どこから始めるべきか分からない。 –

+1

ジョブパラメータが問題ではない可能性があります。これは、タイプミスやクラスパスの問題のように聞こえます。私は次のように始めるだろう: 1)実際にEclipseでデバッグを使う。 2)問題を再現するためにJUnitを作成します。 3)上記の質問にエラーの完全なスタックトレースを追加してください –

関連する問題