gpt4 book ai didi

java - 如何在 Spring 启动时使用 ResponseStatusException 将错误消息显示到 Json 中?

转载 作者:行者123 更新时间:2023-12-03 21:13:33 28 4
gpt4 key购买 nike

我在触发错误请求时显示错误消息时遇到问题。

@DeleteMapping("/{projectId}/bugs/{bugId}")
public void deleteBug(@PathVariable (value = "projectId") Long projectId,
@PathVariable (value = "bugId") Long bugId){
if (!projectService.existById(projectId) || !bugService.existById(bugId)) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "ProjectId " + projectId + " or BugId " + bugId + " not found");
}
bugService.deleteBug(bugId);
}

这是我触发响应时的 JSON 响应:
{
"timestamp": "2020-05-29T15:40:41.302+00:00",
"status": 400,
"error": "Bad Request",
"message": "",
"path": "/projects/3/bugs/2" }

如您所见,该消息没有出现。如果我更改代码中的 HttpStatus,它实际上可以工作,但由于某种原因,该消息不起作用。

我检查了类的构造函数,它实际上只允许状态和原因。

我是遗漏了什么还是 ResponseStatusException 类中的错误?

最佳答案

我也遇到过这个。这不是错误,因此降级不是最佳解决方案。 Spring Boot 2.3.0 release notes解释:

Changes to the Default Error Page's Content

The error message and any binding errors are no longer included in the default error page by default. This reduces the risk of leaking information to a client. server.error.include-message and server.error.include-binding-errors can be used to control the inclusion of the message and binding errors respectively. Supported values are always, on-param, and never.



例如,在您的应用程序配置中,您可以将这些设置为显示 message但不是 trace输出(YAML 示例):

server:
error:
include-message: ALWAYS
include-stacktrace: NEVER

关于java - 如何在 Spring 启动时使用 ResponseStatusException 将错误消息显示到 Json 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62089792/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com