Uncaught (in promise) Error: Request failed with status code 500

分享一些状态码400 404 500等原因:
在这里插入图片描述
出错:
在这里插入图片描述
在这里插入图片描述
前端:

 // 获取所有的导航菜单
    async getMenuList(){
    
    
      const {
    
    data:res} = await this.$http.get("menus");
      console.log(res.data);
      if( res.status != 200) return this.$message.error("操作失败!!!");
      this.menuList = res.data;
    },

后端:

@RestController
public class MenuController {
    
    
    @Autowired
    MenuDao menuDao;

    @CrossOrigin
    @RequestMapping("/menus")
    public String getAllMenus(){
    
    
        System.out.println("sucess");
        HashMap<String, Object> data = new HashMap<>();
        List<MainMenu> mainMenus = menuDao.getMainMenus();
        data.put("data",mainMenus);
        data.put("status",200);
        String data_json = JSON.toJSONString(data);
        System.out.println("成功访问!!!");
        return data_json;
    }
}

xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.naughty.userlogin02.dao.MenuDao">
    <resultMap id="menumap" type="com.naughty.userlogin02.bean.MainMenu">
        <id column="id"  property="id"></id>
        <result column="title"  property="title"></result>
        <result column="path"  property="path"></result>
        <collection  property="slist" ofType="com.naughty.userlogin02.bean.SubMenu">
            <result column="sid"  property="id"></result>
            <result column="stitle"  property="title"></result>
            <result column="spath"  property="path"></result>
        </collection>
    </resultMap>
    <select id="getMainMenus" resultMap="menumap">
        SELECT mm.*,sm.id as sid ,
               sm.title as stitle,sm.path as spath FROM mainmenu mm ,
           submenu sm WHERE mm.id = sm.mid;
    </select>
 </mapper>

检查后发现是配置文件写错,修改为:

spring:
  datasource:
    #MySQL配置
    driverClassName:  com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3308/data1?useSSL=false&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
    username: heziyi
    password: 123456

修改完后再次启动,没有报错了

错误码404:
发现是因为controller类上面没有加@RestController注解

2.17日又一次出现错误码500
在这里插入图片描述
response报错:

{“timestamp”:“2021-02-17T08:22:46.911+0000”,“status”:500,“error”:“Internal
Server Error”,“message”:“Invalid bound statement (not found):
com.naughty.userlogin02.dao.TeacherDao.getTeacherCounts”,“path”:"/allteacher"}

自己的TeacherDao中有一句话:
public int getTeacherCounts(@Param(“name”) String name);
然后查了一下发现有可能是因为xml中没有对应的语句造成的,在xml中加上:

<select id="getTeacherCounts" resultType="java.lang.Integer">
        SELECT count(*) FROM `teacherlist`
        <if test="name !=null ">
            WHERE name like #{name}
        </if>
    </select>

再运行已经成功了,前端页面能够正常显示数据:

在这里插入图片描述

2.21
出现错误码500原因之一:
xml文件中方法名的大小写与接口中的方法名大小写没对上
之后仍然再次出现错误码500
信息:
在这里插入图片描述

Cannot determine value type from string ‘数学’; nested exception is java.sql.SQLDataException: Cannot determine value type from string
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: Error attempting to get column ‘title’ from result set. Cause: java.sql.SQLDataException: Cannot determine value type from string ‘数学’
; Cannot determine value type from string ‘数学’; nested exception is java.sql.SQLDataException: Cannot determine value type from string ‘数学’] with root cause

在message实体类中加上无参构造函数之后解决。

猜你喜欢

转载自blog.csdn.net/qq_41358574/article/details/113814919