2016-09-07 29 views
0

我用Spring-Boot我的應用程序,我想AutowiredSpring Batch AdminjobService管理批處理作業自己。 但是當我使用這個如何使用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配置。所有配置使用註釋@Bean。 – user1697646

回答

1

SimpleJobServiceFactoryBean需要使用其他必需屬性填充以創建JobService。

@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)時,它會拋出異常org.hsqldb.HsqlException:用戶缺少權限或找不到對象:BATCH_JOB_EXECUTION。 我是否需要配置關於數據源的東西?我使用MySQL的數據庫。 – user1697646

+0

是的。你必須配置你的MySQL數據庫數據源。在上面的例子中,使用了一個嵌入式數據庫。 – kswaughs

相關問題