为什么 spring-boot-3 给出 javax.servlet.http.HttpServletRequest ClassNotFoundException

Jas*_*ang 21 java spring-boot

当我运行 spring-boot-2.7 时,没有问题。但是,当我更改代码并将其定制为 spring-boot-3.0 时,出现 java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest

有人可以帮我下载源代码并在您的计算机上运行吗?运行后,单击“使用 Facebook 登录”,您将看到异常。 https://github.com/chuangtc/spring-boot-3.0-security-social-login

我尝试添加jarkarta servlet api 6.0,但异常仍然存在。

Cor*_*ene 35

您不必将 jakarta servlet api 6.0 添加到pom.xml. 根据此处的文档,它已经包含在内。

在您的代码中,无论使用哪个javax.servlet.http.HttpServletRequest,您都需要将 更改javaxjakarta

所以整行将是这样的: import jakarta.servlet.http.HttpServletRequest

我之前在升级服务时也遇到过这个错误,我用这种方式解决了它。也许你可以尝试一下。

[编辑]

我发现您的依赖项之一正在使用javax.servlethttps://mvnrepository.com/artifact/org.springframework.social/spring-social-facebook/2.0.3.RELEASE

在这个 github 上,似乎这个包不再被积极维护和存档,因此它们很可能不会升级到 Spring Boot 3。

我建议寻找其他方法来处理 Facebook 的社交登录,也许你可以尝试这种方法?

https://www.codejava.net/frameworks/spring-boot/social-login-with-facebook-example