Dan*_*tud 4 java spring spring-mvc spring-boot
我在触发错误请求时显示错误消息时遇到问题。
@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);
}
Run Code Online (Sandbox Code Playgroud)
这是我触发响应时的 JSON 响应:
{
"timestamp": "2020-05-29T15:40:41.302+00:00",
"status": 400,
"error": "Bad Request",
"message": "",
"path": "/projects/3/bugs/2" }
Run Code Online (Sandbox Code Playgroud)
如您所见,该消息没有出现。如果我更改代码中的 HttpStatus,它实际上可以工作,但由于某种原因,该消息不起作用。
我检查了类的构造函数,它实际上只允许状态和原因。
我是遗漏了什么还是 ResponseStatusException 类中的错误?
我也遇到过这个。这不是错误,因此降级不是最佳解决方案。在春季启动2.3.0版本说明解释:
对默认错误页面内容的更改
默认情况下,错误消息和任何绑定错误不再包含在默认错误页面中。这降低了向客户泄露信息的风险。
server.error.include-message并且server.error.include-binding-errors可以分别用于控制消息的包含和绑定错误。支持的值是always,on-param和never。
例如,在您的应用程序配置中,您可以将这些设置为显示message但不trace输出(YAML 示例):
server:
error:
include-message: ALWAYS
include-stacktrace: NEVER
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1966 次 |
| 最近记录: |