带有 tomcat-embed-core 的 Spring Boot 3.2.2:11.0.0-M17

问题描述 投票:0回答:1

我需要更新 tomcat-embed-core 的版本,因为它有漏洞。但我有一个问题,在11.0.0-M6及以上版本中,

setRejectIllegalHeader
类中的
AbstractHttp11Protocol
函数已被弃用,但仍然在
TomcatWebServerFactoryCustomizer
类中调用。这使得应用程序无法以此描述启动。

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    org.springframework.boot.autoconfigure.web.embedded.TomcatWebServerFactoryCustomizer.lambda$customizeRejectIllegalHeader$20(TomcatWebServerFactoryCustomizer.java:209)

The following method did not exist:

    'void org.apache.coyote.http11.AbstractHttp11Protocol.setRejectIllegalHeader(boolean)'

The calling method's class, org.springframework.boot.autoconfigure.web.embedded.TomcatWebServerFactoryCustomizer, was loaded from the following location:

    jar:file:/Users/XXXXX/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/3.2.3/59db74eb4196885bb5a149417ab1ab51dc9b6952/spring-boot-autoconfigure-3.2.3.jar!/org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer.class

The called method's class, org.apache.coyote.http11.AbstractHttp11Protocol, is available from the following locations:

    jar:file:/Users/XXXXX/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/11.0.0-M17/d3818654cd6bf4241e9ade24531727a214a5b18f/tomcat-embed-core-11.0.0-M17.jar!/org/apache/coyote/http11/AbstractHttp11Protocol.class
    jar:file:/Users/XXXXX/.gradle/caches/modules-2/files-2.1/org.apache.tomcat/tomcat-coyote/11.0.0-M17/9101e5a5f564483d13b5cb0bfeb1f042c22a014b/tomcat-coyote-11.0.0-M17.jar!/org/apache/coyote/http11/AbstractHttp11Protocol.class

The called method's class hierarchy was loaded from the following locations:

    org.apache.coyote.http11.AbstractHttp11Protocol: file:/Users/XXXXX/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/11.0.0-M17/d3818654cd6bf4241e9ade24531727a214a5b18f/tomcat-embed-core-11.0.0-M17.jar
    org.apache.coyote.AbstractProtocol: file:/Users/XXXXX/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-embed-core/11.0.0-M17/d3818654cd6bf4241e9ade24531727a214a5b18f/tomcat-embed-core-11.0.0-M17.jar


Action:

Correct the classpath of your application so that it contains compatible versions of the classes org.springframework.boot.autoconfigure.web.embedded.TomcatWebServerFactoryCustomizer and org.apache.coyote.http11.AbstractHttp11Protocol

enter image description here

我使用 Spring Boot 3.2.2、Java 21

为了能够运行该应用程序,是否需要执行任何其他操作?

spring spring-boot gradle tomcat
1个回答
1
投票

如果您使用 Intellij Idea,请尝试从文件 -> 项目结构 -> 模块中删除旧的存档、引用。

在这种情况下,我还会在升级之前执行“gradle clean”。

© www.soinside.com 2019 - 2024. All rights reserved.