2016-09-07 7 views
0

私は私のアプリのためにSpring-Bootを使用して、私はバッチジョブを自分で管理するためにSpring Batch AdminAutowiredjobServiceにしたいです。 しかし、私はこのautowired annotation spring bootでjobService springバッチ管理を使用するには?

@Autowied 
Jobservice jobService; 

を使用するとき、それは例外

No qualifying bean of type [org.springframework.batch.admin.service.JobService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 

どのように私はこの例外を修正することができますがスローされます。 jobServiceについて何か設定する必要がありますか? 私が研究し、この

@Bean 
public JobService jobService() throws Exception { 
    SimpleJobServiceFactoryBean factory = new SimpleJobServiceFactoryBean(); 
    return factory.getObject(); 
} 

を試してみてくださいしかし、仕事と、それは別の例外をスローしないように見えます。何かに間違った設定をしていますか?

+0

spring-contextまたはjbo-context configuration.xmlファイルを共有しますか? –

+0

私はxml設定を使用していません。すべてuse use annotation @Bean。 – user1697646

答えて

1

JobServiceを作成するには、SimpleJobServiceFactoryBeanに他の必須プロパティを設定する必要があります。

@Bean 
public JobService jobService() throws Exception { 

    SimpleJobServiceFactoryBean factoryBean = new SimpleJobServiceFactoryBean(); 

    factoryBean.setDataSource(new EmbeddedDatabaseBuilder().build()); 

    factoryBean.setJobRepository((JobRepository) new MapJobRepositoryFactoryBean(
      new ResourcelessTransactionManager()).getObject()); 

    factoryBean.setJobLocator(new MapJobRegistry()); 

    factoryBean.setJobLauncher(new SimpleJobLauncher()); 

    factoryBean.afterPropertiesSet(); 

    return factoryBean.getObject(); 
} 
+0

ありがとうございます。私はそれを試してみます。 – user1697646

+0

うまく動作します。しかし、この関数jobService.listJobExecutions(int、int)をテストすると、例外orgHsqldb.HsqlExceptionがスローされます。ユーザーに特権がないか、オブジェクトが見つかりませんでした:BATCH_JOB_EXECUTION。 データソースなどの設定が必要ですか?私はデータベースにmysqlを使用します。 – user1697646

+0

はい。あなたはあなたのMySQLデータベースのデータソースを設定する必要があります。上の例では、組み込みデータベースが使用されています。 – kswaughs

関連する問題