报错信息:
报错的根本原因:
No adapter for handler [com.bishe.controller.user.UniversityController@7156aa9e]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler
这通常意味着以下几种情况之一:
-
控制器(Controller)不兼容:
UniversityController
可能没有实现Spring MVC的Controller
接口,或者没有使用@Controller
注解,导致DispatcherServlet
无法识别它为一个控制器。 -
Spring配置问题:Spring的配置可能缺少了必要的组件,比如
AnnotationMethodHandlerAdapter
,它是处理带有@RequestMapping
等注解的方法的适配器。 -
Spring版本问题:由于异常信息中提到了
jakarta.servlet.ServletException
,这表明你正在使用Jakarta EE 9或更高版本的Servlet API。如果你的Spring MVC版本不支持Jakarta EE的Servlet API,那么可能会出现兼容性问题。确保你的Spring MVC版本与你的Servlet容器兼容。 -
组件扫描问题:如果
UniversityController
没有被Spring扫描到,那么它也不会被注册为一个控制器。确保你的Spring配置中包含了正确的组件扫描路径。
为了解决这个问题,你可以尝试以下步骤:
- 确保
Controller
类上有@RestController
注解。 - 确保你的Spring MVC配置中包含了
AnnotationMethodHandlerAdapter
。 - 检查你的Spring MVC版本是否与你的Servlet容器版本兼容。
- 确保
UniversityController
所在的包在Spring的组件扫描路径内。 - 如果你使用的是Spring Boot,确保你的
@SpringBootApplication
注解包含了UniversityController
所在的包。
解决问题:
我不小心把RequestMappering中的网址写到RestController中去了。你们可以根据上面的步骤慢慢检查自己的出错