Whitelabel Error Page(1)之 Not Found

本文分析了Whitelabel Error Page出现的原因,主要是由于@RequestMapping注解缺失或URL路径不正确导致资源未找到。提供了四种解决方法,包括在对应方法上添加@RequestMapping注解,并给出了正确的URL路径示例,帮助开发者理解并解决Not Found错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Thu Sep 07 16:27:43 CST 2017
There was an unexpected error (type=Not Found, status=404).
No message available

出错原因

当访问getStatus() 方法时,返回type = not found。代码如下:

代码块

@RestController
@RequestMapping("/status")
public class StatusController {
    private String username;
    private String password;

    public JsonResult getStatus(){
        return new JsonResult("200","成功",new Date());
    }
}

访问路劲:

http://localhost:8080/status

代码功能

获取json格式的数据,此数据是关于状态码的。如:

{“code”:”404”,”message”:”错误”,”date”:1504779777036}

错误分析:

1. 从页面错误信息可知,not found 是指资源找不到

2. 如果想要访问getStatus()方法,那么需要在此方法上加@RequestMapping(value = “xxx”),此值可以为空,也可以有值,但必须要写此注解

3. 如上面的代码中getStatus()上并没有写@RequestMapping注解,所以会报错

解决方法

方法一(添加代码 @RequestMapping(“”))
@RestController
@RequestMapping("/status")
public class StatusController {
    private String username;
    private String password;

    @RequestMapping("")
    public JsonResult getStatus(){
        return new JsonResult("200","成功",new Date());
    }
}
方法二(添加代码 @RequestMapping(value = “”))
@RestController
@RequestMapping("/status")
public class StatusController {
    private String username;
    private String password;

    @RequestMapping(value = "")
    public JsonResult getStatus(){
        return new JsonResult("200","成功",new Date());
    }
}
方法三(添加代码 @RequestMapping(value = “/hello”))
@RestController
@RequestMapping("/status")
public class StatusController {
    private String username;
    private String password;

    @RequestMapping(value = "/hello")
    public JsonResult getStatus(){
        return new JsonResult("200","成功",new Date());
    }
}
方法四(添加代码 @RequestMapping)
@RestController
@RequestMapping("/status")
public class StatusController {
    private String username;
    private String password;

    @RequestMapping
    public JsonResult getStatus(){
        return new JsonResult("200","成功",new Date());
    }
}

建议

当想要访问的方法并不需要url时,建议以下写法:
@RequestMapping(value = “”)

@RestController
@RequestMapping("/status")
public class StatusController {
    private String username;
    private String password;

    @RequestMapping(value = "")
    public JsonResult getStatus(){
        return new JsonResult("200","成功",new Date());
    }
}

总结 type = Not Found:

示例1(url路劲没写正确):

当在getStatus()方法上添加注解@RequestMapping后,访问成功路劲的url和错误路劲的url会返回不同的页面,如下演示。

正确的url

http://localhost:8080/status

返回我们想看到的200成功的页面:
这里写图片描述

错误的url

http://localhost:8080/status/ddd
http://localhost:8080/stat

返回错误Not Found页面:
这里写图片描述

总结:
type=Not Found 访问的资源找不到:

1.1 可能是你的url路劲没写正确

1.2 可能是后台代码的@RequestMapping没写

1.3 可能路劲中包含中文字符,如中文的问号?, 中文的逗号,
如:Whitelabel Error Page(3)之 Not Found)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值