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

未能启动豆子“任务生命周期清除程序”;嵌套异常是 java.lang.非法描述异常: 任务执行无效, ID 1 未找到

公羊伟志
2023-03-14

我正在与spring boot项目和make as @Enabletask合作,并尝试用spring数据流运行。

我有Spring数据流服务器,在shell中,我试图注册应用程序并创建任务,当我运行任务时,我得到了错误。

默认情况下,它使用H2数据库,但我也尝试与mysql也面临同样的问题。

由于java.lang.IllegalArgumentException:任务执行无效,找不到ID 1,应用程序无法运行,并且我无法在localhost:9393上看到开始时间、结束时间和退出代码/

1)使用mysql连接参数运行数据流服务器。--spring.datasource.url=jdbc:mysql://localhost:3306/mydb--spring.datasource.username=根--spring.datasource.driver-类名=org.mariadb.jdbc.Driver

2) 使用mysql连接参数运行dataflow shell--spring.datasource.url=jdbc:mysql://localhost:3306/mydb--spring.数据源。username=root--spring.datasource.driver类名=org.mariadb.jdbc.driver

3)使用mysql连接参数执行任务。-spring . data source . URL = JDBC:MySQL://localhost:3306/myd b-spring . data source . username = root-spring . data source . driver-class-name = org . Maria db . JDBC . driver

已经在pom文件中添加了mysql依赖项。

请查看以下主类代码

package com.example.demo;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.task.configuration.EnableTask;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
@EnableTask
public class test {
    @Bean
    public CommandLineRunner commandLineRunner() {
        return new HelloWorldCommandLineRunner();
    }

    public static void main(String[] args) {
        SpringApplication.run(test.class, args);
    }

    public static class HelloWorldCommandLineRunner implements CommandLineRunner {

        @Override
        public void run(String... strings) throws Exception {
            System.out.println("Hello, World!");
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
        <relativePath />
        <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <!--    <spring-cloud.version>Greenwich.SR1</spring-cloud.version> -->
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-task</artifactId>
            <version>1.2.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
            <version>8.0.16</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

共有2个答案

阙佐
2023-03-14

我在github上报道过类似的问题。https://github.com/spring-cloud/spring-cloud-task/issues/446

在我的例子中,问题是Spring boot和Spring cloud版本。正如我在你的例子中看到的,你使用的是Spring boot 2.0.5 RELEASE,而对于Spring cloud任务启动器,你使用的是1.2.3 RELEASE。这可能会导致兼容性问题。

我建议您尝试该依赖项的较新版本,您可以在这里找到它——https://mvnrepository . com/artifact/org . spring framework . cloud/spring-cloud-starter-task

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-task -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-task</artifactId>
    <version>2.0.2.RELEASE</version>
</dependency>

1.x.x版本的springcloudstartertask与1.x.x版的springboot兼容,同样2.x.x将与2.x.x兼容。

岳迪
2023-03-14

您是否需要依赖Spring启动器-jdbc?还有玛丽亚德布司机。我假设我的学习障碍服务器正在运行。检查日志文件中是否存在早期错误。

 类似资料:
  • 我在sts中创建了一个maven项目,并试图为该项目创建一个war文件。我还为我的类配置了querydsl。当我运行maven install时,一个类给我一个错误响应。 错误:创建在文件[C:\ Users \ Vince \ Documents \ workspace-spring-tool-suite-4-4 . 0 . 1 . release \ project \ target \ te

  • 异常: 嵌套任务透传 重新处理生成器嵌套,需要将子生成器异常抛向父生成器。 当生成器迭代过程发生未捕获异常,生成器将会被关闭,Generator::valid返回false,未捕获异常会从生成器内部被抛向父作用域,嵌套子生成器内部的未捕获异常必须最终被抛向根生成器的calling frame,PHP7中yield-from对嵌套子生成器resume时产生的异常,采取goto try_again传递

  • 我对flutter的编译有问题 我已尝试调试但未成功

  • 问题内容: 我收到以下异常。 java.util.NoSuchElementException:找不到行 我在编写一个需要从文本文件读取的较大程序时遇到了此错误,因此决定进行测试。 而且我仍然得到例外。我在与名为stricts.txt的类相同的文件夹中有一个文本文件,其中包含文本。我究竟做错了什么? 问题答案: 新的File(“ restrictions.txt”)将在应用程序的“开始目录”中查找

  • 执行周期性任务也是一样简单,您只需要编写一行代码: RecurringJob.AddOrUpdate(() => Console.Write("Easy!"), Cron.Daily); 此行在持久存储中创建一个新实体。 Hangfire Server中的一个特殊组件(请参阅 处理后台任务) 以分钟为间隔检查周期性任务,然后在队列中将其视作 fire-and-forget 任务。这样就可以照常跟踪

  • 我已经将我的web应用程序从java6升级到java7。我已经在weblogic 10.3上成功部署了web层、ejb层和web服务层。除了有状态ejb之外,一切都很好。在这些ejb调用过程中,我在服务器日志上看到以下异常。 谁能告诉我根本原因是什么。我的ejb版本是2.0。