为什么迁移到 Spring Boot 3.1.3 时会出现 HandlerWrapper 的 ClassNotFoundException?

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

我目前正在将 Spring Boot 应用程序从 2.7.9 迁移到 3.1.3。 我知道 Jetty 在 11.x 版本之前与 Spring Boot 的 servlet-api 6.0.0 不兼容,因此我决定使用承诺兼容的 jetty-server 版本 12.0.1。 不幸的是,我遇到了一个例外,即由于缺少类

JettyServletWebServerFactory
,Spring Boot 无法实例化
org.eclipse.jetty.server.handler.HandlerWrapper
的 bean,这会导致
java.lang.ClassNotFoundException: org.eclipse.jetty.server.handler.HandlerWrapper

为什么以及如何解决这个问题?

spring-boot jetty
1个回答
0
投票

Jetty 12 包含许多重大 API 更改,使其与 Spring Boot 3.1 不兼容。 Jetty 12 希望在 Spring Boot 3.2 中得到支持。在此之前,您无法将 Jetty 12 与 Spring Boot 一起使用。

与其尝试将 Jetty 升级到 12,更好的选择是将 Servlet API 依赖项降级到 5.0。具体如何执行取决于您正在使用的构建系统。 这个 Spring Boot 问题中描述了一些建议。

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