我需要更新 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
我使用 Spring Boot 3.2.2、Java 21
为了能够运行该应用程序,是否需要执行任何其他操作?
如果您使用 Intellij Idea,请尝试从文件 -> 项目结构 -> 模块中删除旧的存档、引用。
在这种情况下,我还会在升级之前执行“gradle clean”。