解决Spring Boot 正常启动后访问Controller提示404及500等错误

解决spring boot启动不成功解决方法

之前在搭建的时候没怎么注意这块。新创建项目成功后,作为项目启动类的Application在com.example.demo包下面,然后我写了一个Controller,然后包的路径是com.example.controller用的@RestController 注解去配置的controller,然后路径也搭好了,但是浏览器一直报404。最后找到原因是Spring Boot只会扫描启动类当前包和以下的包 ,就是说现在我启动类的包是在com.example.demo下面,然后他就只会扫描com.example.demot或者com.example.demo.*下面所以的包,所以我的Controller在com.example.controller包下面Spring Boot就没有扫描到。
在这里插入图片描述

解决办法

方法一:

以启动类的包路径作为顶层包路径,列如启动类包为com.example.demo,那么Controller包路径就为com.example.demo.controller。

方法二:

在启动上方添加@ComponentScan注解,此注解为指定扫描路径,例如:@ComponentScan(basePackages = {“com.example.demo,com.example.controller”}) 多个不同的以逗号分割。
    在这里插入图片描述
如果是下例的报错信息
其解决方案:
检查tomcat启动是否OK。
检查url对应的服务端资源是否匹配(客户端url与controller定义url)。
检查controller的包结构(所在包应在主启动类所在包的同包或子包中)。
在这里插入图片描述
注意项目工程的包结构,主启动类必须在最外层
在这里插入图片描述

500错误

500错误的重点是看这句(返回方法资源找不到)
This application has no explicit mapping for /error, so you are seeing this as a fallback.
在这里插入图片描述
其解决方案:
检查返回值名称是否正确
检查JsonResult封装
检查application.properties配置数据库文件
如都是正确的就检查注解
需要有两个注解才能正常访问
问题分析:检查服务端要访问的方法上是否有@ResponseBody注解.
@RequestMapping(“findObjects”)
@ResponseBody
在这里插入图片描述

抱错的类型有太多种,如下是一些项目遇到的问题跟解决方法就不写那么仔细了

测试类

无法找到对应的Bean对象(NoSuchBeanDefinitionException)
问题分析:
检测key的名字写的是否正确。
检测spring对此Bean对象的扫描,对于dao而言。
使用有@Mapper注解描述或者在@MapperScan扫描范围之内。
以上都正确,要检测是否编译了。
在这里插入图片描述

绑定异常(BindingException)

接口的类全名与对应的映射文件命名空间不同。
接口的方法名与对应的映射文件元素名不存在。
检测映射文件的路径与application.properties或者application.yml中的配置是否一致。
以上都没有问题时,检测你的类和映射文件是否正常编译
在这里插入图片描述

反射异常(ReflectionException)

问题分析:
映射文件中动态sql中使用的参数在接口方法中没有使用@Param注解修饰
假如使用了注解修饰还要检测名字是否一致。
说明:当动态sql的参数在接口中没有使用@Param注解修饰,还可以借助_parameter这个变量获取参数的值(mybatis中的一种规范)
在这里插入图片描述

结果映射异常

问题分析:getRowCount元素可能没有写resultType或resultMap。
在这里插入图片描述

绑定异常

问题分析:绑定异常,检测findPageObjects方法参数与映射文件参数名字是否匹配
在这里插入图片描述

Bean创建异常

问题分析:应该是查询时的结果映射对的类全名写错了在这里插入图片描述

请求方式不匹配405

问题分析:请求方式与控制层处理方式不匹配在这里插入图片描述

响应结果异常406

服务端响应数据不正确,例如服务端没有注册将对象转换为JSON串的Bean
在这里插入图片描述

请求参数异常

问题分析:客户端请求参数中不包含服务端控制层方法参数或格式不匹配。
在这里插入图片描述

JS编写错误

问题分析:点击右侧VM176:64位置进行查看在这里插入图片描述

JS编写错误

问题分析:找到对应位置,检测data的值以及数据来源
找到对应位置,假如无法确定位置,可排除法或打桩,debug分析。
问题分析:调用length方法的对象有问题,可先检测下对象的值
问题分析:检测record定义或赋值的地方
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一种快速开发的框架,但启动之后访问Controller下的接口却出现404错误,这可能是很困扰的问题。通常来说,导致这种问题的原因有很多种,需要逐步排查才能解决。以下是可能的原因和解决方法: 1. 没有添加@Controller注解 在Controller类上,没有添加@Controller注解,就会导致无法访问到接口。需要在Controller类上添加@Controller注解。 2. 没有添加@RequestMapping注解 Controller类上已经添加@Controller注解,但没有在Controller方法上添加@RequestMapping注解,就也会导致无法访问到接口。需要在Controller方法上添加@RequestMapping注解。 3. 访问路径有误 在访问接口时,路径不正确,可能会导致404错误。需要核对访问路径是否正确。 4. 错误的HTTP方法 如果Controller类中的方法接收GET请求,但在访问时使用了POST请求或其他请求方法,就会导致404错误。需要确保使用正确的HTTP方法来访问接口。 5. 必须添加@Configuration注解 在加上@Configuration注解之前,需要在工程目录下先添加一个@Configuration标记的java类,用来启用SpringMVC。如果没有添加@Configuration注解,就无法启用SpringMVC,也会导致无法访问到接口。 总之,当Spring Boot启动访问Controller下的接口出现404错误时,需要逐步检查以上原因,并且根据实际情况,寻找其他可能存在的问题,才能解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值