【发布时间】:2018-02-22 07:52:18
【问题描述】:
我有一个基本的 Spring Batch 应用程序,它在 Spring Boot 中在嵌入式 Apache Tomcat 上运行。我需要向它添加弹簧管理功能。根据最新的 spring 文档,我需要使用 spring 云数据流来执行此操作(https://docs.spring.io/spring-batch-admin/)。所以现在我需要使用 spring 云数据流并将我的 spring 批处理应用程序集成到本地服务器上。我只希望它在我的本地机器上运行,而不需要将它部署到任何云环境,如 cloud Foundry 或 openshift。可能吗?我确信它是可能的。我想获得一些关于这种类型的集成和集成spring批处理应用程序的入门指南的参考/示例。我需要在 Spring Cloud 数据流中创建任务来运行我的 Spring Batch 应用程序吗?如果有任何示例示例/伪代码来指导我,那将很容易。
【问题讨论】:
-
@Sabby Anandan 你能帮我解决这个问题吗
-
我尝试按照文档进行操作。如果我做错了什么,请纠正我。所以我在 springBatchApplication 中将 @enabletask 添加到了我的 Mainclass 中。所以这应该使它成为 spring 云任务。然后运行 spring 云数据流 jar 给了我一个 UI,我将 jar 注册为任务并尝试启动它。所以启动它并没有多大作用。该应用程序未启动,它在任务详细信息中具有以下值,exe 选项卡中的任务状态为未知。属性值 参数 Extenal Execution Id N/A Strt Time N/A Ed Time N/A Batch Job Job Exection Ids Strt Time N/A End Time N/A Exit Coe 0 Exit Message N/A
-
这不是很有帮助。请注意服务器控制台/日志。将有一个绝对路径 - 一个链接 - 来跟踪“启动的任务”,这可能会说明它失败的原因。服务器日志还应该说明启动失败的原因。
-
也许作为第一步,您可以在 SCDF 中运行一个示例 SCT 应用程序来感受一下。成功后,您可以继续进行应用迁移。
-
我在日志上有这个错误 无法启动 bean 'taskLifecycleListener';嵌套异常是 org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback;错误的 SQL 语法 [INSERT into TASK_EXECUTION(TASK_EXECUTION_ID, START_TIME, TASK_NAME, LAST_UPDATED, EXTERNAL_EXECUTION_ID, PARENT_EXECUTION_ID) 值 (?, ?, ?, ?, ?, ?)];嵌套异常是 java.sql.SQLSyntaxErrorException: ORA-00904: "PARENT_EXECUTION_ID": org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) 的标识符无效~[spring-context-4.3.11.RELEASE。 j
标签: spring-batch-admin spring-cloud-dataflow