You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot 3.x集成Togglz遇类转换异常问题求助

解决SpringBoot 3.1.2集成Togglz的ClassCastException问题

问题根源

SpringBoot 3.x基于Jakarta EE 9+规范,使用的是jakarta.servlet.Filter接口;而Togglz 4.0.0及M4版本的默认servlet模块仍依赖旧的javax.servlet API,导致两个版本的Filter接口由不同类加载器加载,触发ClassCastException。

解决方案

  • 排除旧的javax.servlet依赖
    在Maven或Gradle中,给Togglz相关依赖排除javax.servlet-api,确保项目使用SpringBoot提供的Jakarta版本:

    <!-- Maven示例 -->
    <dependency>
        <groupId>org.togglz</groupId>
        <artifactId>togglz-spring-boot-starter</artifactId>
        <version>4.0.0</version>
        <exclusions>
            <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 切换到Togglz的Jakarta专属模块
    如果排除依赖无效,直接使用Togglz为Jakarta EE提供的servlet-jakarta模块替代原servlet模块:

    <dependency>
        <groupId>org.togglz</groupId>
        <artifactId>togglz-servlet-jakarta</artifactId>
        <version>4.0.0</version>
    </dependency>
    
  • 清理依赖缓存
    执行项目构建命令清理缓存,确保拉取正确的依赖:

    # Maven
    mvn clean install
    
    # Gradle
    gradle clean build
    
  • 验证依赖树
    检查项目依赖树,确认不存在javax.servlet-api,仅保留jakarta.servlet-api:

    # Maven
    mvn dependency:tree | grep servlet
    
    # Gradle
    gradle dependencies | grep servlet
    

内容的提问来源于stack exchange,提问作者maruti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 09:42:52