我有一个非常简单的 @RestController
,我正在尝试设置自定义错误消息。但由于某种原因,错误的 message
没有出现。
这是我的控制器:
@RestController
@RequestMapping("openPharmacy")
public class OpenPharmacyController {
@PostMapping
public String findNumberOfSurgeries(@RequestBody String skuLockRequest) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "This postcode is not valid");
}
}
这是我得到的回应:
{
"timestamp": "2020-06-24T17:44:20.194+00:00",
"status": 400,
"error": "Bad Request",
"message": "",
"path": "/openPharmacy/"
}
我正在传递一个 JSON,但我没有验证任何东西,我只是想设置自定义消息。如果我更改状态代码,我会在响应中看到它,但 message
始终为空。
为什么这不像预期的那样工作?这是一个如此简单的示例,我看不出可能缺少什么。当我调试代码时,我可以看到错误消息已设置所有字段。但由于某种原因,消息永远不会在响应中设置。
原文由 cunhaf 发布,翻译遵循 CC BY-SA 4.0 许可协议
该答案由用户 Hassan 在对原始问题的评论中提供。我只是将其作为答案发布,以提高可见度。
基本上,您需要做的就是将
server.error.include-message=always
添加到您的 application.properties 文件中,现在应该填充您的消息字段。此行为在 Spring Boot 2.3 中已更改,您可以在此处阅读: https ://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes#changes-to-the-default -错误页面内容