• 【转载】Spring boot API测试 Controller逻辑正常但返回404


    https://blog.csdn.net/w05980598/article/details/79144353

    使用postman测试接口,返回404错误,如下所示

    {
    "timestamp": 1516711514877,
    "status": 404,
    "error": "Not Found",
    "message": "No message available",
    "path": "/sell/buyer/order/create"
    }
    查看Controller层,并打印ResultVOUtil.success代码如下

    <textarea readonly="readonly" name="code" class="Java">
    @PostMapping("/create")
    public ResultVO create(@Valid OrderForm orderForm, BindingResult bindingResult){
    if (bindingResult.hasErrors()) {
    log.error("【创建订单】参数不正确,OrderForm={}",orderForm);
    throw new SellException(ResultEnum.PARAM_ERROR.getCode(),
    bindingResult.getFieldError().getDefaultMessage());
    }
    OrderDTO orderDTO = OrderForm2OrderDTO.convert(orderForm);
    if (CollectionUtils.isEmpty(orderDTO.getOrderDetails()) ) {
    log.error("【创建订单】购物车不能为空");
    throw new SellException(ResultEnum.CART_IS_EMPTY);
    }
    /**
    * 数据库存储 订单信息
    */
    OrderDTO creatResult=orderService.creat(orderDTO);
    /** 拼接返回数据*/
    Map<String,String> map = new HashMap<>();
    map.put("orderId",creatResult.getOrderId());
    System.out.println(ResultVOUtil.success(map));
    return ResultVOUtil.success(map);

    打印ResultVOUtil.success(map)显示内容如下

    ResultVO(code=0, msg=success, data={orderId=1516711514688210126})
    那就奇怪了,在return该对象时候,API测试就提示404了。后来发现注解如下 用的是@Controller注解

    @Controller
    @Slf4j
    @RequestMapping("/buyer/order")
    将Controller改为RestConntroller问题成功解决!


    附:@Controller和@RestConntroller区别

    @RestController is a stereotype annotation that combines @ResponseBody and @Controller.
    意思是:
    @RestController注解相当于@ResponseBody + @Controller合在一起的作用。


    1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

    例如:本来应该到success.jsp页面的,则其显示success.

    2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
    3)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
    ---------------------
    作者:福尔摩帅
    来源:CSDN
    原文:https://blog.csdn.net/w05980598/article/details/79144353
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    K8S 使用NFS 创建PV和PVC的例子 学习From https://blog.csdn.net/xts_huangxin/article/details/51494472
    Windows 2012r2 以及以上版本远程提示错误的解决方法
    CentOS下 NFS的简单使用以及windows 关在linux的NFS存储方法
    PPT 遥控器
    Windows 下面简单的同步文件夹工具
    IIS 下 搭建简单的FTP服务器
    Zoom 会议系统
    SQLSERVER 2014 内存优化表相关
    SQLSERVER 2014 SP1 的服务器 日志文件无法收缩的处理
    Jenkins Jfrog Artifactory 以及docker下的pipeline 容器编排实践
  • 原文地址:https://www.cnblogs.com/telwanggs/p/14794459.html
Copyright © 2020-2023  润新知