问题诊断
当服务端返回HTTP 406(Not Acceptable)状态码时,通常表示以下两个环节存在异常:
- 数据格式不匹配:前端请求头(Accept)与后端响应内容类型(Content-Type)不一致
- 序列化失败:实体类未正确生成getter/setter方法,导致无法转换为JSON格式
根因分析(基于Lombok场景)
通过排查发现,问题根源在于Lombok的@Data注解失效,导致:
- 实体类未自动生成getter/setter方法
- 对象序列化时无法获取属性值
- Jackson库转换JSON失败
解决方案
步骤一:清理并重建项目 shell代码
# Maven项目
mvn clean install
# Gradle项目
gradle clean build
步骤二:验证字节码生成
- 在IDE中定位目标实体类
- 打开编译后的class文件(位于target/classes或build/classes目录)
- 检查是否包含预期的getter/setter方法
步骤三:IDE配置检查
- 确认已安装Lombok插件(IntelliJ/EClipse均需安装)
- 启用注解处理(Settings > Build > Compiler > Annotation Processors)
- 重启IDE并重新构建项目
删除已编译的数据,重新编译,查看编译后的是否有Get()、Set()方法