我有一个Spring Cloud Task胖罐,我已成功部署到在PCF上运行的SCDF。我已经为它创建了一个定义,因此可以从仪表板运行它。 fwiw它使用Spring JDBC从数据库读取和写入。
我正在尝试将其设置为以预定方式运行并且遇到问题。我创建了一个带有triggertask源和task-launcher-local接收器的流,并将triggertask URI配置为指向fat jar(通过http,使用静态文件PCF推送应用程序)。
仪表板显示两个PCF应用程序(一个用于triggertask,一个用于任务本地启动程序)都成功启动,并且全部运行,但任务每次都失败并出现错误:
Caused by: java.io.IOException: Cannot run program "java" (in directory "/home/vcap/tmp/spring-cloud-dataflow-5903184636016162160/Task--582903409-1502669137014/Task--582903409"): error=2, No such file or directory
从我可以告诉和推测,运行流的PCF应用程序尝试fork和执行java调用,但由于java不在PCF应用程序容器的路径中,我得到错误
我是对的吗?无论哪种方式,我怎样才能让Spring Cloud Task(jar)成功运行?Spring Cloud数据流:服务器 1.2.3(使用内置的spring-cloud-dataflow-server-cloudfoundry-1.2.3.BUILD-SNAPSHOT.jar)
Spring Cloud数据流:Shell 1.2.3(使用下载的spring-cloud-dataflow-shell-1.2.3.RELEASE.jar)
部署环境 PCF v1.11.6(在Azure上) pcf dev v0.26.0(在mac上)
App Starters http://bit-dot-ly/1-0-4-GA-stream-applications-rabbit-maven
日志 link to log
答案 0 :(得分:0)
帖子中缺少流定义。在使用SCDF的本地服务器时,您可能正在使用tasklauncher-local
接收器,该接收器仅与兼容,并且在CF中运行时,它将失败并附加错误。请确保您使用tasklauncher-cloudfoundry
接收器。此应用程序已添加到最新版本的app-starters中。
正如之前的SO主题所指出的,强烈建议您使用最新版本的app-starters (1.0.4至少10个月)。最新版本可在project site找到。