首页 > 解决方案 > Spring Cloud 数据流服务器

问题描述

我正在学习并使用 Spring Cloud DataFlow 做一些 POC,但遇到了一些问题:

我正在尝试启动本地数据流服务器。为了实现这一点,我刚刚创建了一个 Spring Boot 应用程序并用@EnableDataFlowServer.

当我尝试运行时,出现以下错误:

11:54:53.307 [main] 调试 org.springframework.boot.context.logging.ClasspathLoggingApplicationListener - 应用程序无法使用类路径启动:
[...]
11:54:53.395 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 6.0.13.Final
11:54:53.406 [background-preinit] 调试 org.hibernate.validator.internal.engine.resolver.TraversableResolvers - 在包含“getPersistenceUtil”的类路径上找到 javax.persistence.Persistence。假设 JPA 2 环境。尝试实例化 JPA 感知 TraversableResolver
11:54:53.408 [background-preinit] 调试 org.hibernate.validator.internal.engine.resolver.TraversableResolvers - 实例化 JPA 感知 TraversableResolver,类型为 org.hibernate.validator.internal.engine.resolver.JPATraversableResolver。
11:54:53.413 [background-preinit] 调试 org.hibernate.validator.internal.xml.config.ValidationXmlParser - 尝试为基于 XML 的验证器配置加载 META-INF/validation.xml。
11:54:53.414 [background-preinit] 调试 org.hibernate.validator.internal.xml.config.ResourceLoaderHelper - 尝试通过 TCCL 加载 META-INF/validation.xml
11:54:53.414 [background-preinit] 调试 org.hibernate.validator.internal.xml.config.ResourceLoaderHelper - 尝试通过 Hibernate Validator 的类加载器加载 META-INF/validation.xml
11:54:53.415 [background-preinit] 调试 org.hibernate.validator.internal.xml.config.ValidationXmlParser - 未找到 META-INF/validation.xml。仅使用基于注释的配置。
11:54:53.590 [background-preinit] 调试 org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator - 通过原始 TCCL 加载表达式工厂
11:54:53.596 [background-preinit] 调试 org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234:使用 org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator 作为 ValidatorFactory 范围的消息插值器。
11:54:53.597 [background-preinit] 调试 org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234:使用 org.hibernate.validator.internal.engine.resolver.JPATraversableResolver 作为 ValidatorFactory 范围的可遍历解析器。
11:54:53.597 [background-preinit] 调试 org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234:使用 org.hibernate.validator.internal.util.ExecutableParameterNameProvider 作为 ValidatorFactory 范围的参数名称提供程序。
11:54:53.597 [background-preinit] 调试 org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234:使用 org.hibernate.validator.internal.engine.DefaultClockProvider 作为 ValidatorFactory 范围的时钟提供程序。
11:54:53.597 [background-preinit] 调试 org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234:使用 org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory 作为 ValidatorFactory 范围的脚本评估器工厂。
11:54:53.866 [main] 错误 org.springframework.boot.SpringApplication - 应用程序运行失败
java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.([Ljava/lang/Object;)V
    在 org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:161)
    在 org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:102)
    在 org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:68)
    在 org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
    在 org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
    在 org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
    在 org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
    在 org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)
    在 org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
    在 org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:338)
    在 org.springframework.boot.SpringApplication.run(SpringApplication.java:297)
    在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1242)
    在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1230)
    在 com.arrobaautowired.springclouddataflowserver.SpringCloudDataflowServerApplication.main(SpringCloudDataflowServerApplication.java:12)

我正在寻求帮助,我读到这可能是 pom 的版本问题。其实我pom.xml的是:

<-- [...] --> 

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.6.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <!-- DataFlow Server -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dataflow-server-local-autoconfig</artifactId>
        <version>1.7.0.RELEASE</version>
    </dependency>


</dependencies>

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

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
    <pluginRepository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

谁能帮我?

标签: spring-bootspring-cloudspring-cloud-dataflow

解决方案


感谢评论中的更新。

我们过去曾经推广过 SCDF 定制模型,但由于各种原因我们决定退出它,所以文档中没有提到它。因此,我们也将它从 Spring Initializr 中删除。

至于错误,您似乎在 Boot 2.x 行,但 SCDF 仍在 1.5.x 基线上。您可以切换到 Boot 1.5.17 并重试。

此外,作为一个仅供参考,SCDF 的基线将在未来几周内切换到 Boot 2.1。


推荐阅读