java: 程序包javax.servlet.http不存在

这篇具有很好参考价值的文章主要介绍了java: 程序包javax.servlet.http不存在。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

当项目从2.7.x的springboot升级到3.0.x的时候,遇到一个问题“java: 程序包javax.servlet.http不存在” 。这可能是一些包的精简变化导致的。错误信息如下:

java: 程序包javax.servlet.http不存在,SpringBoot2启示录,servlet,springboot,maven

 错误代码段

java: 程序包javax.servlet.http不存在,SpringBoot2启示录,servlet,springboot,maven

package com.softdev.system.generator.config;

import com.softdev.system.generator.entity.ReturnT;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

/**
 * @author zhengkai.blog.csdn.net
 */
@ControllerAdvice
public class GlobalDefaultExceptionHandler {

    @ExceptionHandler(Exception.class)
    @ResponseBody
    public ReturnT defaultExceptionHandler(HttpServletRequest req, Exception e) {
        e.printStackTrace();
        return ReturnT.error("代码生成失败:"+e.getMessage());
    }

}

解决方案 

Maven Repository: jakarta.servlet » jakarta.servlet-api » 6.0.0 (mvnrepository.com)

增加一下依赖即可。

		<dependency>
			<groupId>jakarta.servlet</groupId>
			<artifactId>jakarta.servlet-api</artifactId>
			<version>6.0.0</version>
			<scope>provided</scope>
		</dependency>

修改后代码如下(请注意引用部分)

package com.softdev.system.generator.config;

import com.softdev.system.generator.entity.ReturnT;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import jakarta.servlet.http.HttpServletRequest;

/**
 * @author zhengkai.blog.csdn.net
 */
@ControllerAdvice
public class GlobalDefaultExceptionHandler {

    @ExceptionHandler(Exception.class)
    @ResponseBody
    public ReturnT defaultExceptionHandler(HttpServletRequest req, Exception e) {
        e.printStackTrace();
        return ReturnT.error("代码生成失败:"+e.getMessage());
    }

}

附录

其实很多教程仍然指向旧版的

Java Servlet is the foundation web specification in the Java Enterprise Platform. Developers can build web applications using the Servlet API to interact with the request/response workflow.

Maven Repository: javax.servlet » javax.servlet-api (mvnrepository.com)

但是新版的话已经叫Jakarta Servlet,来自Eclipse基金会,

Maven Repository: jakarta.servlet » jakarta.servlet-api » 6.0.0 (mvnrepository.com)

java: 程序包javax.servlet.http不存在,SpringBoot2启示录,servlet,springboot,maven

据说,racle在19年把javax捐给eclipse基金会,但不允许使用javax的命名空间,所以eclipse才继续发展成现在的javaee标准Jakarta,Jakarta 8与javaee 8只是换了个命名空间,jakarta9才是新的发展,spring6与spring boot3会采用Jakarta作为新的命名空间。文章来源地址https://www.toymoban.com/news/detail-623948.html

到了这里,关于java: 程序包javax.servlet.http不存在的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决办法|运行Java Web项目时 爆红“找不到符号,方法不会覆盖或实现超类型的方法,程序包javax.servlet不存在”如何解决?

            1、项目Tomcat 服务器依赖未导入         2、项目的 SDK 版本选择错误   File→Project Structure Modules→Library  将自己的Tomcat选上之后点击Add Selected  将所选的Tomcat勾选后点击OK  Project Structure→Project→Project SDK→选择自己电脑的正确版本   问题成功解决! 

    2024年02月11日
    浏览(35)
  • SpringBoot 项目整合启动报错:javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/ser

    报错信息如下:java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/ser 历经此坑的心路历程,就是一个简单的服务项目整合到web项目中,期间并没有在意jar包依赖的问题,此问题只是简单登录跳转的问题,没有太在意,除了访问登录页的时候报错外,其

    2024年02月11日
    浏览(36)
  • SpringBoot3.1.2 引入Swagger报错Type javax.servlet.http.HttpServletRequest not present解决办法

    1.问题描述: 引入swagger2.X版本后,导致SpringBoot3.1.2启动报错 2.原因分析: SpringBoot3.1.2版本依赖于jakarta依赖包,但是Swagger依赖底层应用的javax依赖包,所以只要一启动就会报错。 3.解决办法: pom.xml文件,移除swagger2 加入 代码修改 SwaggerConfig.java 实体类 controller类 遇到报错:

    2024年02月04日
    浏览(33)
  • java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.setContentLengthLong(J)V

    先说原因,其实都是你的jar有问题 1.jar冲突 2.少依赖了包 网上很多说springmvc和springwebmvc,版本高于5.3.0导致的,会有这个问题,那是因为他们没看过源码,高版本的因为在这里,多了一行代码,这里设置的时候,会到实现类里面写一个东西,this.servletResponse.setContentLengthLong(

    2024年02月11日
    浏览(36)
  • javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping

    出现此类错误 需要检查各子项目中pom文件是否引用了重复的javax.servlet-api maven依赖导致。 如果项目是单体项目,检查是否引用org.springframework-spring-web依赖,必须移除掉移除嵌入式tomcat插件 检查controller层是否地址无误,本人是controller的接口不知道怎么删除掉了,导致一直出现

    2024年02月12日
    浏览(39)
  • 错误异常“The superclass “javax.servlet.http.HttpServlet“ was not found on the Java Build Path”的解决方法

    Java web导入项目后出现“ The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path ”错误的解决方法: 在eclipse中导入项目后常出现的问题。 原因分析:在java web工程下没有引入中间件(服务器tomcat)运行的library 导入项目包后会出现: 首先右击项目选择Properties 其

    2024年02月04日
    浏览(33)
  • Spring BOOT:javax.servlet.http.HttpServletRequest异常

     Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: No primary or single unique constructor found for interface javax.servlet.http.HttpServletRequest] with root cause                  用SpringBoot做验证码的时候,需要用HttpServletReque

    2024年02月11日
    浏览(35)
  • idea导入import javax.servlet.http.HttpServletRequest;爆红

    1、问题描述: 2、解决办法: 第一步: 选中左侧项目 → 右键 → 选择 Open Module Settings  第二步: 在 Project Structure 窗口, 选择左侧的 Modules ,在选中中间的项目,点击右侧的+号,选择Library 第三步: 在Choose Libraries 窗口,选择New Library... ,在下拉框选择Java 第四步: 在Selec

    2024年02月11日
    浏览(25)
  • Type javax.servlet.http.HttpServletRequest not present

    运行环境  Swagger 3.0.0、springboot 3.0.0  产生原因: Swagger 3.0.0不支持spring3.0.0     两个解决方案:     1.降低springboot版本为2.x     2.放弃Swagger,使用  springdoc-openapi-starter-webmvc-ui 第二种解决方案: @Tag 用来设置 Controller 的名称和描述,类似于给 Postman 的 Collections 命名; @A

    2024年02月06日
    浏览(89)
  • 关于IDEA在写文件上传时,找不到javax.servlet.http.HttpServletRequest如何解决

            当我们在使用IDEA是,发现需要使用javax.servlet包下类时,IDEA无法识别类或是方法,会在控制台提示,无法找到javax.servlet.http.HttpServletRequest。此时我们需要按照一下的步骤进行导包即可。 1、选中项目所在的Module或工程名,右键单击Open Module Settings或者单击File——Pro

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包