axios.post("/checkitem/add.do",this.formData).then((res)....gets 404

问题描述

我在使用dubbo和zookeeper练习项目时,遇到404问题。 按理说,“post”地址是没有问题的,this.formData是收到的。

            handleAdd () {
            //进行表单校验
            this.$refs['dataAddForm'].validate((valid) => {
                if(valid){
                    //表单校验通过,发生ajax请求,将录入的数据提交到后台进行处理
                    console.log(this.formData);
                    axios.post("/checkitem/add.do",this.formData).then((res) => {  
                        //关闭新增窗口
                        this.dialogFormVisible = false;
                        if(res.data.flag){//执行成功
                            //新增成功后,重新调用分页查询方法查询出最新的数据
                            this.findPage();
                            //弹出提示信息
                            this.$message({
                                message:res.data.message,type:'success'
                            });
                        }else{//执行失败
                            //弹出提示
                            this.$message.error(res.data.message);
                        }
                    });
                }else{
                    //校验不通过
                    this.$message.error("数据校验失败,请检查你的输入信息是否正确!");
                    return false;
                }
            });
        },

package com.itheima.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.itheima.constant.MessageConstant;
import com.itheima.entity.Result;
import com.itheima.pojo.CheckItem;
import com.itheima.service.CheckItemService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 检查项管理
 */
@RestController
@RequestMapping("/checkitem")
public class CheckItemController {
    @Reference//查找服务
    private CheckItemService checkItemService;
    //新增检查项1
    @RequestMapping("/add")
    public Result add(@RequestBody CheckItem checkItem) {
        try{
            checkItemService.add(checkItem);
        }catch (Exception e) {
            e.printstacktrace();//服务调用失败
            return new Result(false,MessageConstant.ADD_CHECKITEM_FAIL);
        }

        return new Result(true,MessageConstant.ADD_CHECKITEM_SUCCESS);

    }
}

package com.itheima.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.itheima.dao.CheckItemDao;
import com.itheima.pojo.CheckItem;
import com.itheima.service.CheckItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

/**
 * 检查项服务
 */
@Service(interfaceClass = CheckItemService.class)
@Transactional
public class CheckItemServiceImpl implements CheckItemService {
//    注入dao
    @Autowired
    private CheckItemDao checkItemDao;
    @Override
    public void add(CheckItem checkItem) {
        checkItemDao.add(checkItem);
    }
}

enter image description here 这是错误信息

坦白说,我不知道这些代码是否有用,希望有人能给我一个方向。

哦,我忘记了“.do”,web.xml如下

  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.dispatcherServlet</servlet-class>
    <!-- 指定加载的配置文件 ,通过参数contextConfigLocation加载 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

当我更改帖子时变成get

axios.get("/checkitem/add.do",this.formData).then((res) => { 可悲的是,它不能工作。 enter image description here


我不知道能不能提供一些信息,当我点击确认提交数据时,404只显示在控制台中,但网络没有响应。 enter image description here


很抱歉忘记显示错误信息,通过这些信息可能可以找到它是什么错误

10:59:48,611 DEBUG RequestMappingHandlerMapping:312 - Looking up handler method for path /checkitem/add.do
10:59:48,612 DEBUG RequestMappingHandlerMapping:322 - Did not find handler method for [/checkitem/add.do]
10:59:48,613  WARN PageNotFound:1205 - No mapping found for HTTP request with URI [/checkitem/add.do] in dispatcherServlet with name 'springmvc'
10:59:48,613 DEBUG dispatcherServlet:1000 - Successfully completed request

解决方法

我总是试图在前端发现错误导致忘记检查idea的消息,在注意到我迅速解决了这个问题之后。答案是我springmvc的注解包错漏了“itheima”。

    <dubbo:application name="health_backend" />
    <!--指定服务注册中心地址-->
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    <!--批量扫描-->
    <dubbo:annotation package="com.itheima.controller" />
    <!--
        超时全局设置 10分钟
        check=false 不检查服务提供方,开发阶段建议设置为false
        check=true 启动时检查服务提供方,如果服务提供方没有启动则报错
    -->
    <dubbo:consumer timeout="600000" check="false"/>