Spring-批处理到 Spring 云数据流中的 spring 任务
Spring-batch to spring task in Spring cloud data flow
我是 spring-batch 和 spring 云数据流的新手。
我修改了 spring-batch 的示例快速启动项目,它现在写入本地 MSSQL 数据库:当我 运行 使用 java -jar 时它工作正常。
我现在尝试将其部署到 Spring Cloud Data Flow 的本地实例,将其作为任务从仪表板导入并尝试 运行:它给了我这个错误:
2017-11-15 17:54:46.109 INFO 17164 --- [ main] hello.Application : Starting Application v0.0.1-SNAPSHOT on localmachine with PID 17164 (C:\Users\massimo.sporchia\eclipse-workspace\batch-example\target\batch-example-0.0.1-SNAPSHOT.jar started by massimo.sporchia in C:\Users\MASSIM~1.SPO\AppData\Local\Temp\spring-cloud-dataflow-5975572085987003620\exampleTask-1510764882259\exampleTask-4fd22d5a-a5f0-49d5-8634-a4bbb21d2675)
2017-11-15 17:54:46.129 INFO 17164 --- [ main] hello.Application : No active profile set, falling back to default profiles: default
2017-11-15 17:54:46.402 INFO 17164 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@1698c449: startup date [Wed Nov 15 17:54:46 CET 2017]; root of context hierarchy
2017-11-15 17:54:49.020 WARN 17164 --- [ main] o.s.c.a.ConfigurationClassEnhancer : @Bean method ScopeConfiguration.stepScope is non-static and returns an object assignable to Spring's BeanFactoryPostProcessor interface. This will result in a failure to process annotations such as @Autowired, @Resource and @PostConstruct within the method's declaring @Configuration class. Add the 'static' modifier to this method to avoid these container lifecycle issues; see @Bean javadoc for complete details.
2017-11-15 17:54:49.066 WARN 17164 --- [ main] o.s.c.a.ConfigurationClassEnhancer : @Bean method ScopeConfiguration.jobScope is non-static and returns an object assignable to Spring's BeanFactoryPostProcessor interface. This will result in a failure to process annotations such as @Autowired, @Resource and @PostConstruct within the method's declaring @Configuration class. Add the 'static' modifier to this method to avoid these container lifecycle issues; see @Bean javadoc for complete details.
2017-11-15 17:54:49.288 INFO 17164 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.task.batch.configuration.TaskBatchAutoConfiguration' of type [org.springframework.cloud.task.batch.configuration.TaskBatchAutoConfiguration$$EnhancerBySpringCGLIB$$da33614e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-11-15 17:54:49.306 INFO 17164 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$c3b5c2] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-11-15 17:54:49.441 INFO 17164 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.task.batch.listener.BatchEventAutoConfiguration' of type [org.springframework.cloud.task.batch.listener.BatchEventAutoConfiguration$$EnhancerBySpringCGLIB$896b51] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-11-15 17:54:49.631 WARN 17164 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'batchConfiguration': Unsatisfied dependency expressed through field 'jobBuilderFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration': Unsatisfied dependency expressed through field 'dataSources'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver
2017-11-15 17:54:49.653 INFO 17164 --- [ main] utoConfigurationReportLoggingInitializer :
Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2017-11-15 17:54:49.686 ERROR 17164 --- [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'batchConfiguration': Unsatisfied dependency expressed through field 'jobBuilderFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration': Unsatisfied dependency expressed through field 'dataSources'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver
相同的 spring-batch uber-jar 在部署为 Stream 时工作:我缺少什么?
感谢回购。
要在 SCDF 中 运行 Spring 批处理作业,您必须将应用程序调整为 Spring Cloud Task programming model. Please use the Spring Cloud Task and Spring Cloud Data Flow 批处理作业示例作为参考。
除非应用程序适应此模型,否则它不会 运行 在 SCDF 中。
还有一件事。批处理作业只能 运行 作为 SCDF 中的任务,并且 不能 在流中使用。
我是 spring-batch 和 spring 云数据流的新手。 我修改了 spring-batch 的示例快速启动项目,它现在写入本地 MSSQL 数据库:当我 运行 使用 java -jar 时它工作正常。 我现在尝试将其部署到 Spring Cloud Data Flow 的本地实例,将其作为任务从仪表板导入并尝试 运行:它给了我这个错误:
2017-11-15 17:54:46.109 INFO 17164 --- [ main] hello.Application : Starting Application v0.0.1-SNAPSHOT on localmachine with PID 17164 (C:\Users\massimo.sporchia\eclipse-workspace\batch-example\target\batch-example-0.0.1-SNAPSHOT.jar started by massimo.sporchia in C:\Users\MASSIM~1.SPO\AppData\Local\Temp\spring-cloud-dataflow-5975572085987003620\exampleTask-1510764882259\exampleTask-4fd22d5a-a5f0-49d5-8634-a4bbb21d2675)
2017-11-15 17:54:46.129 INFO 17164 --- [ main] hello.Application : No active profile set, falling back to default profiles: default
2017-11-15 17:54:46.402 INFO 17164 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@1698c449: startup date [Wed Nov 15 17:54:46 CET 2017]; root of context hierarchy
2017-11-15 17:54:49.020 WARN 17164 --- [ main] o.s.c.a.ConfigurationClassEnhancer : @Bean method ScopeConfiguration.stepScope is non-static and returns an object assignable to Spring's BeanFactoryPostProcessor interface. This will result in a failure to process annotations such as @Autowired, @Resource and @PostConstruct within the method's declaring @Configuration class. Add the 'static' modifier to this method to avoid these container lifecycle issues; see @Bean javadoc for complete details.
2017-11-15 17:54:49.066 WARN 17164 --- [ main] o.s.c.a.ConfigurationClassEnhancer : @Bean method ScopeConfiguration.jobScope is non-static and returns an object assignable to Spring's BeanFactoryPostProcessor interface. This will result in a failure to process annotations such as @Autowired, @Resource and @PostConstruct within the method's declaring @Configuration class. Add the 'static' modifier to this method to avoid these container lifecycle issues; see @Bean javadoc for complete details.
2017-11-15 17:54:49.288 INFO 17164 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.task.batch.configuration.TaskBatchAutoConfiguration' of type [org.springframework.cloud.task.batch.configuration.TaskBatchAutoConfiguration$$EnhancerBySpringCGLIB$$da33614e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-11-15 17:54:49.306 INFO 17164 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$c3b5c2] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-11-15 17:54:49.441 INFO 17164 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.task.batch.listener.BatchEventAutoConfiguration' of type [org.springframework.cloud.task.batch.listener.BatchEventAutoConfiguration$$EnhancerBySpringCGLIB$896b51] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-11-15 17:54:49.631 WARN 17164 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'batchConfiguration': Unsatisfied dependency expressed through field 'jobBuilderFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration': Unsatisfied dependency expressed through field 'dataSources'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver
2017-11-15 17:54:49.653 INFO 17164 --- [ main] utoConfigurationReportLoggingInitializer :
Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2017-11-15 17:54:49.686 ERROR 17164 --- [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'batchConfiguration': Unsatisfied dependency expressed through field 'jobBuilderFactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration': Unsatisfied dependency expressed through field 'dataSources'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver
相同的 spring-batch uber-jar 在部署为 Stream 时工作:我缺少什么?
感谢回购。
要在 SCDF 中 运行 Spring 批处理作业,您必须将应用程序调整为 Spring Cloud Task programming model. Please use the Spring Cloud Task and Spring Cloud Data Flow 批处理作业示例作为参考。
除非应用程序适应此模型,否则它不会 运行 在 SCDF 中。
还有一件事。批处理作业只能 运行 作为 SCDF 中的任务,并且 不能 在流中使用。