现象:
代码中我们使用@ResponseStatus要返回自定义的异常message,但是接口返回的message为null
if (null == db) {
throw new NotExist("conductorEnv not exist");
}
@ResponseStatus(HttpStatus.BAD_REQUEST)
public class BadRequest extends RuntimeException{
public BadRequest(String message, Exception exception) {
super(message, exception);
}
public BadRequest(String message) {
super(message);
}
public BadRequest() {
super("Bad Request: please check your request body.");
}
}
{
"timestamp": 1656905642972,
"status": 404,
"error": "Not Found",
"message": "",
"path": "/api/v1/workflow/clusters/CID-87/conductor/env/update/CID-787"
}
解决办法
从SpringBoot 2.3+开始,引入了一下新的属性来控制message
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes#new-and-noteworthy
我们要做的是在配置文件中加入
server:
error:
include-message: always