【问题标题】:NullPointerException when retrieving job executions from Spring Cloud Data Flow 1.1.2 UI or API从 Spring Cloud Data Flow 1.1.2 UI 或 API 检索作业执行时出现 NullPointerException
【发布时间】:2017-07-30 10:46:36
【问题描述】:

当我尝试在 UI 的“作业”选项卡(“获取数据时出错。数据流服务器是否正在运行?”)或通过 REST API (500 NullPointerException) 获取作业执行列表时,我发现了一个问题.

日志中的错误是

java.lang.NullPointerException: null
at org.springframework.cloud.dataflow.server.service.impl.DefaultTaskJobService.getTaskJobExecution(DefaultTaskJobService.java:231) ~[spring-cloud-dataflow-server-core-1.1.2.RELEASE.jar!/:1.1.2.RELEASE]

这似乎是由代码引起的:

taskExplorer.getTaskExecutionIdByJobExecutionId(jobExecution.getId())

调查一下,我的一些作业似乎与任务 ID 没有关联 - 即 task_task_batch 表中没有条目,如果我尝试检索其中一个作业或所有作业的列表,我会得到 NullPointerException。

直接通过在 task_task_batch 表中有关联的 id 检索作业是可以的。

调查为什么我的一些工作任务会发生这种情况,这似乎是因为其中一些使用 XML 而不是 Java Config 来配置工作 (我们有一些预先存在的复杂工作,我们正在从 XD 转移到 Spring Cloud Data Flow 并保留 XML 是最初执行此操作的最快方法。

否则这些作业运行良好,并将作业/步骤执行记录到数据库。

使用 XML 时,taskBatchExecutionListener 似乎没有自动添加到作业中,因此任务/批处理关联没有被注册。

此代码在TaskBatchExecutionListenerBeanPostProcessor 中,这可能是因为在使用 XML 配置时,作业 bean 的类型为 JobParserJobFactoryBean 而不是 AbstractJob

如果我手动添加监听器,即

<listeners>
   <listener ref="taskBatchExecutionListener"/>
</listeners>

在作业 xml 中问题已解决。

我有几个问题:

1) 这是 Spring Cloud Task 中的一个错误 - 即它只是没有正确处理 XML 配置,如果是这样我可以为此提出一个问题。

2) Spring Cloud Dataflow 是否应该更好地处理这个问题?看起来表现不佳的任务可以有效地破坏数据并停止检索包含“好”工作的列表。

【问题讨论】:

    标签: spring-cloud-dataflow spring-cloud-task


    【解决方案1】:

    我遇到了同样的问题,在我的情况下,通过在作业配置中添加 @EnableTask 解决了这个问题

    【讨论】:

      【解决方案2】:

      我记得也遇到过这个错误,但就我而言,我尝试通过 spring 云数据流服务器 API 删除任务执行(请参阅 https://docs.spring.io/spring-cloud-dataflow/docs/current-SNAPSHOT/reference/htmlsingle/#api-guide-resources-task-executions-delete)。

      当我注意到它实际上是一个 NO-OP 删除(它什么也没做,并得到了开发人员 https://github.com/spring-cloud/spring-cloud-dataflow/issues/1844 的确认)时,我尝试手动从数据库中删除记录,但我错过了一些记录。

      有一些 FK 依赖项,我的清理工作并不彻底。一旦我重新开始(创建了一个新的数据库架构和所有),问题就消失了。

      【讨论】:

        猜你喜欢
        • 2020-12-04
        • 2020-06-30
        • 2018-07-17
        • 2017-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-17
        • 2020-09-07
        相关资源
        最近更新 更多