You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot缺失Content-type请求时自定义错误响应失效问题排查

问题根因
  • 异常处理类错误继承了ExceptionHandlerExceptionResolver
    Spring Boot 2.5.6版本中,@ControllerAdvice注解本身就具备全局异常处理的能力,不需要额外继承ExceptionHandlerExceptionResolver。继承该类会打乱Spring默认的异常解析执行链路:你编写的异常处理逻辑虽然触发执行了,但执行完成后框架还会走默认的异常处理流程,最终返回默认的415响应,同时日志会输出ExceptionHandlerExceptionResolver执行失败的WARN级别日志。
  • 自定义返回类可能存在序列化问题
    你最初的实现中返回了自定义ErrorResponse对象,如果该类没有配置对应的JSON/XML序列化规则,会导致响应序列化失败,触发二次异常,最终也会走Spring默认的错误返回逻辑。
优化方案

你编辑后修改的代码已经去掉了extends ExceptionHandlerExceptionResolver的继承逻辑,完全符合Spring Boot 2.x全局异常处理的规范,所以可以正常返回自定义响应。如果要实现最初的返回500状态码+自定义ErrorResponse的需求,只需要调整返回逻辑即可:

return ResponseEntity
        .status(HttpStatus.INTERNAL_SERVER_ERROR)
        .body(errorResponse);

同时需要保证你的ErrorResponse类已经配置了正确的序列化注解,适配项目支持的JSON、XML两种响应格式。

内容的提问来源于stack exchange,提问作者jstack100

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:15:04