spring-boot - Spring Boot @ResponseStatus 不返回 HTTP 消息
问题描述
抛出异常时,我在返回 HTTP 消息时遇到问题。我正在使用 @ResponseStatus 注释来处理 HTTP 状态代码,它显示正常但消息被忽略。
自定义例外:
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR, reason = "An error ocurred while trying to
retrieve the instruments.")
public class InstrumentsNotFoundException extends RuntimeException {
private static final Logger logger = LoggerFactory.getLogger(InstrumentsNotFoundException.class);
public InstrumentsNotFoundException(String errorMessage) {
super(errorMessage);
logger.error(errorMessage);
}
控制器:
@GetMapping({ "/portfolio/" })
public List<Instrument> getAll() {
try {
List<Instrument> instruments= portfolioYieldProcessor.getPortfolio();
return instruments;
} catch(RuntimeException e) {
throw new ResponseStatusException(
HttpStatus.INTERNAL_SERVER_ERROR, "Sorry, an error occurred, please try again later.", e);
}
}
HttpMessage
解决方案
从 SpringBoot 2.3 开始,这是默认行为,您可以在此处看到。
假设您使用的是 spring 2.3+
server.error.include-message=always
在您的 application.properties 中将为您解决问题。
推荐阅读
- python - 给定一个点和大量的四面体,如何高效判断该点在哪个四面体中
- python - 我想在 for 循环中创建新列表
- javascript - 当我实现 Ajax 调用时,提交表单不起作用
- python - 如何在 seaborn 条形图的每个条形图的顶部显示 y 值?
- javascript - 为什么手机拒绝读取 Math.max 值?
- python - 如何在 Tensorflow Object Detection API v2 中同时训练和评估
- arrays - 使用 Matlab 过滤字符串数组
- screen-scraping - 使用 python 从 youtube 上抓取评论
- angular - Angular ngTemplate、ngTemplateOutlet、ngContent:选择模板的内容
- ruby-on-rails - 如何为 ActiveModel 类生成 .RBI 文件