在我的社区中,我尝试在升级生产代码之前使用Sping Boot 3和Jetty服务器运行一个小示例,但我遇到了java.lang.ClassNotFoundException: jakarta.servlet.http.HttpSessionContext
错误,服务无法启动。
plugins {
id 'java'
id 'idea'
id 'org.springframework.boot' version '3.0.1'
id 'io.spring.dependency-management' version '1.1.0'
}
idea {
module {
downloadJavadoc = false
downloadSources = false
}
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-jetty'
implementation('org.springframework.boot:spring-boot-starter-web') {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
}
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
和依赖性。
HttpSessionContext类不再存在,但最新版本的Jetty仍然依赖于它。
我希望让它在Jetty上运行,而不用迁移到另一个服务器上。
2条答案
按热度按时间qq24tv8q1#
由于Jaokim Erdfelt已经是mentioned,Sping Boot 3依赖于Jakarta Servlet 6.0.0(参见https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes),并且spring-boot-starter-jetty包括构建在Jakarta Servlet 5.0.0上的Jetty 11(参见https://java.libhunt.com/jetty-project-changelog/11.0.0)。
要使用jetty,您必须降低jakarta-servlet版本(请参见https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#jetty)设置
xriantvc2#
Spring 3适用于Servlet 6,可在Jetty 12+中使用