Spring Boot 3整合Okta时遭遇HttpServletRequest类缺失错误
问题根源
Spring Boot 3基于Jakarta EE 9规范,将所有原javax.*命名空间的API迁移至jakarta.*(例如javax.servlet.http.HttpServletRequest已变为jakarta.servlet.http.HttpServletRequest)。而你使用的okta-spring-boot-starter:2.1.6是为Spring Boot 2.x开发的版本,依赖旧的javax.servlet API,导致在Spring Boot 3环境中无法找到对应类,触发NoClassDefFoundError,进而引发BeanCreationException。
解决步骤
升级Okta Starter版本
替换Maven依赖中的Okta Starter为支持Spring Boot 3的版本(3.0.0及以上):<dependency> <groupId>com.okta.spring</groupId> <artifactId>okta-spring-boot-starter</artifactId> <version>3.2.0</version> <!-- 可使用最新兼容稳定版 --> </dependency>刷新依赖并重启项目
执行mvn clean install清理并重新下载依赖,随后启动项目即可解决类找不到的问题。适配API变更(若需)
Okta 3.x版本针对Spring Boot 3做了API调整,Okta.configureResourceServer401ResponseBody方法已被优化,部分场景下无需手动调用即可自动生成友好的401响应。若启动后仍有相关报错,可尝试移除该调用后测试。
内容的提问来源于stack exchange,提问作者Srivishnu Chakpalli
相关产品推荐
相关产品推荐

