spring boot 报错 No primary or single unique constructor found for interface javax.servlet.http.HttpServletRequest
错误现象
发生以下报错
java.lang.IllegalStateException: No primary or single unique constructor found for interface javax.servlet.http.HttpServletRequest
at org.springframework.beans.BeanUtils.getResolvableConstructor(BeanUtils.java:267)
at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.createAttribute(ModelAttributeMethodProcessor.java:221)
at org.springframework.web.servlet.mvc.method.annotation.ServletModelAttributeMethodProcessor.createAttribute(ServletModelAttributeMethodProcessor.java:85)
错误原因
因为spring boot 3 要求使用jdk17
在controller的请求方法写入HttpServletResponse,因为是jdk17,你应该引用jakarta包下的而不是javax
@GetMapping(value = "/test")
public String test(HttpServletResponse response){
return "test";
}
解决错误
修改HttpServletResponse引用的包
将相关的包引用
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
修改为
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;