java - 在 Spring-Boot 上启动 Web 应用程序时出错

标签 java spring-boot

我正在尝试创建一个网络应用程序。 JDK 11 服务器 Payara 5.2020 (GlassFish)。该应用程序几乎是空的。仅描述接口(interface)。和配置文件。启动时出现错误:

[2020-11-17T19:21:17.468+0300] [Payara 5.2020] [SEVERE] [AS-WEB-CORE-00108] [javax.enterprise.web.core] [tid: _ThreadID=117 _ThreadName=admin-thread-pool::admin-listener(1)] [timeMillis: 1605630077468] [levelValue: 1000] [[
  ContainerBase.addChild: start: 
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:283)
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:362)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.initialize(ApplicationLifecycle.java:621)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:565)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:556)
  19:21:17.452 [admin-thread-pool::admin-listener(1)] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.NoSuchMethodError: 'void org.yaml.snakeyaml.LoaderOptions.setMaxAliasesForCollections(int)'
    at org.springframework.boot.env.OriginTrackedYamlLoader.createYaml(OriginTrackedYamlLoader.java:67)

org.yaml.snakeyaml.LoaderOptions.setMaxAliasesForCollections 的作用是什么? 文件application.yml:

spring:
  datasource:
    default-catalog: library
    jndi-name: jdbc/Library
  jpa:
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
    properties:
      hibernate:
        current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
        dialect: org.hibernate.dialect.MySQL5Dialect
        format_sql: true
    show-sql: true

logging:
  file:
    name: c:\logs\app.log
  pattern:
    file: "%d{HH:mm:ss} %-5p [%c] - %m%n"
    
  level:
    ROOT: error
    org.springframework: warn
    javax.faces: warn
    org.omnifaces: warn
    org.springframework.security: warn
    org.hibernate: trace
    org.hibernate.type.descriptor.sql: trace

文件 pom.xml 可能存在版本冲突的地方。也许与 JFS 有关?

<?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 https://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.3.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>ru.javabegin.library</groupId>
    <artifactId>my-library</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>my-library</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>11</java.version>
        <slf4j-api.version>1.7.30</slf4j-api.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
            <version>2.3.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.22.Final</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j-api.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>30.0-jre</version>
        </dependency>

        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>8.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>6.2</version>
        </dependency>
        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.omnifaces</groupId>
            <artifactId>omnifaces</artifactId>
            <version>2.5.1</version>
        </dependency>
        <dependency>
            <groupId>net.bootsfaces</groupId>
            <artifactId>bootsfaces</artifactId>
            <version>1.0.0</version>
        </dependency>
 
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons- 
    fileupload/commons-fileupload -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>
</project>

最佳答案

您的类路径上有错误的 snake-yaml 库。发现问题后,使用mvn dependency:tree分析您的项目并排除错误的库。

关于java - 在 Spring-Boot 上启动 Web 应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64882062/

相关文章:

java - 如何在不依赖java中的键值的情况下顺序从树形图中获取输出

java - 这个字符串怎么可能输出呢?

java - ExecutorCompletionService 示例代码是否需要循环?

spring-boot - Spring Boot 从 application.properties 中外部化属性

spring-boot - 带有功能区的 Spring Cloud 不会忽略服务器

java - 在foreach中传递3个数组

java - 如何使用 Maven 创建具有依赖项的可执行/可运行 JAR?

spring - Spring Boot应用中service层有什么用?

java - 使用 Spring Data Rest @Projection 作为自定义 Controller 中资源的表示

java - 实现授权代码流程授予类型 OAuth2