java.lang.ClassNotFoundException: jakarta.servlet.http.HttpSessionContext と Spring Boot 3 および Jetty サーバー 質問する

java.lang.ClassNotFoundException: jakarta.servlet.http.HttpSessionContext と Spring Boot 3 および Jetty サーバー 質問する

コミュニティです。実稼働コードをアップグレードする前に、Spring Boot 3 と Jetty サーバーで小さな例を実行しようとしていますが、このエラーが発生しjava.lang.ClassNotFoundException: jakarta.servlet.http.HttpSessionContext、サービスが起動しません。これは私の Gradle 構成です。

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 で実行できるようにしたいと考えています。

ベストアンサー1

2013年12月23日更新

Jettyでは回避策はもう必要ありませんバージョン12をリリースサーブレット 6.0.0 をサポートしています。したがって、jetty 12 を含む spring-boot 3.2.0 (spring-boot-starter-jetty:3.2.0) に更新するだけです。

起源

ヤオキム・エルドフェルトがすでに述べたように言及されたSpring Boot 3はJakarta Servlet 6.0.0に依存しています(https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-リリースノート) と spring-boot-starter-jetty には、Jakarta Servlet 5.0.0 をベースに構築された Jetty 11 が含まれています (https://java.libhunt.com/jetty-project-changelog/11.0.0)。つまり、これはスターター自体の問題です。

jettyを使用するには、jakarta-servletのバージョンをダウングレードする必要があります(Spring Boot 3.0 移行ガイド)設定

ext["jakarta-servlet.version"] = "5.0.0"

おすすめ記事