当前位置: 首页 > 知识库问答 >
问题:

如何使用CommandLineJobRunner调用嵌入在Spring Boot应用程序中的Spring批处理作业

燕刚毅
2023-03-14

我有一个Spring Boot应用程序,它有2个模块。首先是一个web模块,它公开了一个rest API,允许用户将一些数据放入应用程序。第二个模块是一组批处理作业,它们作用于这些配置并执行后台处理。

我的下一个任务是打包应用程序并部署web应用程序以公开RESTendpoint,还创建shell脚本以使用企业调度程序启动批处理作业。

我正在使用Maven和spring-boot-maven-plugin构建可执行JAR。当我执行java-jar myapp.jar时,REST API会被公开,但是,当我尝试通过执行java-cp myapp.jar org.springframework.batch.core.launch.support.commandlinejobrunnercom.example.myjobconfig job1 rundate=2020-02-29来运行批处理作业时

我得到以下错误错误:找不到或加载主类org.springframework.batch.core.launch.support.CommandLineJobRunner

我正在寻找关于如何在单个应用程序中同时拥有web应用程序和批处理作业以及使用shell脚本启动批处理作业的帮助。

共有1个答案

唐焕
2023-03-14

我正在使用Maven和spring-boot-maven-plugin构建可执行jar

在这种情况下,可以使用以下命令在命令行上运行作业:

java -jar myApp.jar --spring.batch.job.names=job1 runDate=2020-02-29
 类似资料:
  • 我需要使用Spring batch创建批处理作业。 作业将访问oracle DB,然后获取记录,在tasklet中处理它们并提交结果。 我打算用hibernate和Spring一起处理数据。作业将通过AutoSys执行。我使用的命令行JobRunner作为切入点。 (额外信息-我使用的DynamicWebProject已转换为Gradle、STS、Spring 4.0、Hibernate 5.0,

  • 我有一个带post请求的控制器。我试图用一个简单的NotNull注释验证POJO。我正在使用ControllerAdvice来处理异常。 所以我尝试使用它,但当我启动应用程序时,我得到了以下信息: 因此,我想为BindException创建自己的处理程序,但当我为BindException类创建ExceptionHandler时,spring应用程序不会启动。如果我注释掉handleBindExc

  • 我正在尝试为Spring批处理应用程序编写测试,特别是在以下读取器从实现简单行映射器的数据库中获取记录时的交互: 以下是Batch配置中的步骤定义: 除了我尝试使用以下方法进行测试外,其他方法都可以正常工作: 我无法正确地模拟阅读器,我尝试了各种方法,比如更新阅读器的属性,比如,但似乎没有任何效果。 更新读者结果的正确方法是什么? 或者在单元测试期间,是否需要通过另一种方式来正确操作数据库中的记录

  • 我喜欢确定Java运行时环境可用并检查它们的版本。我的代码将输出正确的jre路径,但无法执行java.exe. 当程序路径是变量时,用批处理脚本中的参数调用程序的正确方法是什么? 我的剧本 错误

  • 我制作了一个web应用程序,允许任何用户使用套接字进行聊天。现在我想用jitsi打视频电话。 我的应用程序上的所有用户都是经过身份验证的用户。当用户单击聊天窗口中的call按钮时,我想使用REST API调用在新窗口中启动Jitsi Meet Conference。 任何正确方向的指导或指针都将受到高度赞赏。

  • 我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em