java.lang.NoSuchMethodError: org.yaml.snakeyaml.LoaderOptions.setMaxAliasesForCollections (I)V
Пытаюсь запустить Spring Boot приложение на сервере Glassfish (Payara 5).
При попытке запустить приложение возникает ошибка:

Вот текст:
[2020-09-26 04:06:43,506] Artifact Gradle : library-0.0.1-SNAPSHOT.war (exploded): Artifact is being deployed, please wait...
[2020-09-26 04:06:50,605] Artifact Gradle : library-0.0.1-SNAPSHOT.war (exploded): Error during artifact deployment. See server log for details.
[2020-09-26 04:06:50,606] Artifact Gradle : library-0.0.1-SNAPSHOT.war (exploded): java.io.IOException: com.sun.enterprise.admin.remote.RemoteFailureException: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: org.yaml.snakeyaml.LoaderOptions.setMaxAliasesForCollections (I)V. Please see server.log for more details.
Далее смотрю файл server.log :

т.е. тут ошибка: java.lang.NoSuchMethodError: org.yaml.snakeyaml.LoaderOptions.setMaxAliasesForCollections (I)V
Пробовал загуглить эту ошибку. В интернете пишут, что надо типа заменить старую версию библиотеки org.yaml.snakeyaml на более новую (1.19).
У меня в данный момент версия 1.26:

Я попробовал разные версии, но это не помогло.
Можете подсказать, в чём ещё может быть проблема?
Файл build.gradle такой:
buildscript {
ext {
springBootVersion = '2.3.4.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management' // плагин для правильной загрузки зависимостей Spring
war {
archiveBaseName = 'library'
version = '0.0.1-SNAPSHOT'
}
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
repositories {
mavenCentral()
// Репозиторий для скачивания зависимостей primefaces
maven {
url 'http://repository.primefaces.org'
}
}
ext['hibernate.version'] = '5.4.2.Final'
configurations {
compile.exclude module: 'spring-boot-starter-tomcat' // исключаю Tomcat так как использую GlassFish (Payara)
}
dependencies {
// Для стартеров будет использоваться версия, указанная в переменной springBootVersion
implementation("org.springframework.boot:spring-boot-starter-web") // для использования Spring MVC
implementation("org.springframework.boot:spring-boot-starter-data-jpa") // для работы с Hibernate
implementation("org.springframework.boot:spring-boot-starter-security") // аутентификация, авторизация
implementation("org.springframework.boot:spring-boot-starter-aop") // для использования аспектов
implementation("org.springframework.boot:spring-boot-starter-actuator") // служебные данные во время работы приложения (бины, endpoints и пр.)
implementation("org.springframework.boot:spring-boot-starter-batch")
implementation 'com.google.guava:guava:+'
implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.12' // драйвер для соединения с БД
providedCompile 'javax:javaee-api:7.0' // в GlassFish (Payara) уже есть эта библиотека, поэтому добавляю только для компиляции
providedCompile 'org.projectlombok:lombok:1.18.6' // уменьшение кода
annotationProcessor 'org.projectlombok:lombok:1.18.6'
// compile group: 'org.yaml', name: 'snakeyaml', version: '1.26' // по умолчанию версия 1.26
// Frontend
implementation 'org.primefaces:primefaces:6.0'
implementation group: 'javax.el', name: 'javax.el-api', version: '3.0.0'
implementation 'org.omnifaces:omnifaces:2.5.1'
implementation 'net.bootsfaces:bootsfaces:1.0.0'
implementation 'commons-io:commons-io:+' // для загрузки файлов в приложении
implementation 'commons-fileupload:commons-fileupload:+'
implementation('org.primefaces.themes:bootstrap:1.0.10')
}
Файл ServletInitializer.java:
package ru.my_projects.online_library;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class ServletInitializer extends SpringBootServletInitializer {
}
Текущая структура проекта:
Ответы (1 шт):
Необходимо обновить библиотеку snakeyaml на версию 1.23 или выше. Это в будет выглядет примерно так:
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.23</version>
</dependency>
а в гредл:
implementation "org.yaml:snakeyaml:1.23"
для подробности можете посмотреть на эту ссылку
