西宁市网站建设_网站建设公司_Angular_seo优化
2026/1/21 11:42:02 网站建设 项目流程

1. 现象说明

执行接口方法,抛出异常No primary or single unique constructor found for interface javax.servlet.http.HttpServletRequest

@GetMapping("/captcha") public void getCaptcha(HttpServletRequest request, HttpServletResponse response) { String captchaText = defaultKaptcha.createText(); log.info("图形验证码:{}", captchaText); // 存储 redisTemplate.opsForValue().set(getCaptchaKey(request), captchaText, CAPTCHA_CODE_EXPIRED, TimeUnit.MILLISECONDS); BufferedImage bufferedImage = defaultKaptcha.createImage(captchaText); try (ServletOutputStream outputStream = response.getOutputStream()) { ImageIO.write(bufferedImage, "jpg", outputStream); outputStream.flush(); } catch (IOException e) { log.error("获取图形验证码异常:", e); } }

2. 解决方法

将所有javax.servlet.*导入语句替换为jakarta.servlet.*

// 错误示例 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; // 正确示例 import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse;

3. 原因说明

  • Spring Boot 3+ 基于Jakarta EE 9+,彻底弃用javax.*命名空间,改用jakarta.*
  • 当代码或依赖库仍使用javax.servlet时,Spring无法实例化接口,抛出IllegalStateException

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询