HTTP 406 错误解决方案指南

552 阅读1分钟

问题诊断

当服务端返回HTTP 406(Not Acceptable)状态码时,通常表示以下两个环节存在异常:

  1. 数据格式不匹配:前端请求头(Accept)与后端响应内容类型(Content-Type)不一致
  2. 序列化失败:实体类未正确生成getter/setter方法,导致无法转换为JSON格式

image-20250316101024115.png

根因分析(基于Lombok场景)

通过排查发现,问题根源在于Lombok的@Data注解失效,导致:

  • 实体类未自动生成getter/setter方法
  • 对象序列化时无法获取属性值
  • Jackson库转换JSON失败

解决方案

步骤一:清理并重建项目 shell代码

# Maven项目
mvn clean install

# Gradle项目
gradle clean build

步骤二:验证字节码生成

  1. 在IDE中定位目标实体类
  2. 打开编译后的class文件(位于target/classes或build/classes目录)
  3. 检查是否包含预期的getter/setter方法

步骤三:IDE配置检查

  1. 确认已安装Lombok插件(IntelliJ/EClipse均需安装)
  2. 启用注解处理(Settings > Build > Compiler > Annotation Processors)
  3. 重启IDE并重新构建项目

删除已编译的数据,重新编译,查看编译后的是否有Get()、Set()方法

image-20250316101211953.png

image-20250316101248328.png

image-20250316101307579.png