【问题标题】:Spring Task in Spring Cloud Dataflow on PCF can't find javaPCF上的Spring Cloud Dataflow中的Spring Task找不到java
【发布时间】:2017-08-14 00:26:08
【问题描述】:

我有一个 Spring Cloud Task fat jar,我已成功部署到在 PCF 上运行的 SCDF。我已经为它创建了一个定义,因此可以从仪表板运行它。 fwiw 它使用 Spring JDBC 从数据库中读取和写入。

我现在正在尝试将其设置为按计划运行,但遇到了问题。我创建了一个带有 triggertask 源和 task-launcher-local sink 的流,并将 triggertask URI 配置为指向 fat jar(通过 http,使用静态文件 PCF 推送应用程序)。

仪表板显示两个 PCF 应用程序(一个用于 triggertask,一个用于 task-local-launcher)都成功启动,并且全部运行,但任务每次都失败并出现错误:

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 应用程序尝试分叉并执行 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 上)

应用初学者 http://bit-dot-ly/1-0-4-GA-stream-applications-rabbit-maven

日志 link to log

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我很抱歉。你之前确实提到过,我就忽略了。是的,我正在使用 tasklauncher-local sink
    • 确实是问题所在,谢谢! FWIW 我现在看到“java.lang.ClassNotFoundException:java.util.HashMap”,这很奇怪
    • 这很奇怪。你能分享整个堆栈跟踪吗?另外,请使用流定义编辑帖子。越详细,越能更好地回答问题所在。
    猜你喜欢
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 2019-07-04
    • 2018-09-13
    • 2019-05-13
    • 1970-01-01
    • 2018-04-03
    • 2018-01-19
    相关资源
    最近更新 更多