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

求助:java.lang.NoSuchMethodError未解决,疑Jar包冲突

解决java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()I问题

首先,这个错误的核心原因很明确:HttpServletResponse.getStatus()方法是从Servlet 2.5规范开始才加入的,如果你的应用运行时加载的是Servlet 2.4或更早版本的API Jar包,就会触发这个NoSuchMethodError。你已经尝试更新servlet-api但Maven环境下没解决,大概率是依赖传递引入了旧版本的Servlet API,或者容器本身的API版本不匹配导致的。下面给你一步步排查和解决的方案:

  • 排查Maven依赖树中的冲突
    Maven的依赖传递很容易引入你没显式声明的旧版本Jar包。你可以通过以下命令生成完整的依赖树:

    mvn dependency:tree
    

    在输出结果中搜索javax.servlet:servlet-api,看看是否有版本低于2.5的条目,或者有没有其他容器相关的依赖(比如tomcat-servlet-api、jboss-servlet-api等)意外引入了旧版本。

  • 排除冲突的旧版本依赖
    如果找到某个依赖引入了旧的servlet-api,你需要在Pom.xml中给该依赖添加排除规则,阻止它传递引入旧Jar:

    <dependency>
        <groupId>你的依赖GroupId</groupId>
        <artifactId>你的依赖ArtifactId</artifactId>
        <version>你的依赖版本</version>
        <exclusions>
            <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 确认servlet-api的依赖范围为provided
    容器(比如Tomcat、Jetty)本身会自带Servlet API Jar包,如果你在Maven中将servlet-api的scope设为compile,打包时会把它打进War包,导致和容器自带的API冲突。正确的做法是设置为provided:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version> <!-- 或更高版本,比如3.0.1,根据你的容器支持情况选择 -->
        <scope>provided</scope>
    </dependency>
    
  • 检查容器的Servlet版本支持
    即使你在Maven中声明了正确的servlet-api版本,如果运行应用的容器不支持对应版本,还是会用容器自带的旧API:

    • Tomcat 5.5 → 仅支持Servlet 2.4
    • Tomcat 6.x → 支持Servlet 2.5
    • Tomcat 7.x → 支持Servlet 3.0
    • Tomcat 8.x → 支持Servlet 3.1
    • Tomcat 9.x → 支持Servlet 4.0
      如果你的容器版本过低,需要升级容器到支持你所用Servlet API版本的版本。
  • 检查关联API的版本匹配
    还要注意和Servlet API关联的其他依赖(比如jsp-api、el-api),它们的版本需要和Servlet API版本匹配,否则也可能间接导致冲突。比如Servlet 2.5对应的jsp-api版本是2.1,el-api是1.0。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:03:32