Spring中的Spring任务PCF上的云数据流无法找到java

时间:2017-08-14 00:26:09

标签: cloudfoundry spring-cloud pivotal-cloud-foundry spring-cloud-dataflow

我有一个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

1 个答案:

答案 0 :(得分:0)

帖子中缺少流定义。在使用SCDF的本地服务器时,您可能正在使用tasklauncher-local接收器,该接收器仅与兼容,并且在CF中运行时,它将失败并附加错误。请确保您使用tasklauncher-cloudfoundry接收器。此应用程序已添加到最新版本的app-starters中。

正如之前的SO主题所指出的,强烈建议您使用最新版本的app-starters (1.0.4至少10个月)。最新版本可在project site找到。