报错Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation]
问题描述
今天在开发注册接口的时候发现了一个很奇怪的事情,
当我测试注册接口时,账户注册成功了,数据库中也成功存了数据,
但是接口的相应内容缺不是请求成功的响应码。
请求参数及响应结果:
数据库成功存储了数据:
后台报错:
错误信息:Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation]
报错原因
通过一番查找,发现是响应返回的封装类缺少了getXX()
和SetXX()
方法
success
方法中,返回的是一个BaseResponse
对象,
而BaseResponse
是我封装的一个相应返回对象。但是在这个对象中我没有写他的getXX()
和SetXX()
方法,也没有使用注解
解决方法
在响应返回的封装类BaseResponse
中加上getXX()
和SetXX()
方法,或者直接加@Data
注解
@Data
注解是 Lombok 库提供的一个注解,它可以自动生成 Java 类的一些常见方法,如 Getter、Setter、equals、hashCode 和 toString 等。使用@Data
注解可以简化代码,减少样板代码的编写。具体来说,
@Data
注解可以自动生成以下方法:
- 所有私有字段的 Getter 方法
- 所有非 final 和非 transient 字段的 Setter 方法
equals()
方法,用于比较对象的相等性hashCode()
方法,用于生成对象的哈希码toString()
方法,用于生成对象的字符串表示使用
@Data
注解时,你无需手动编写这些方法,Lombok 会在编译时自动为你生成。
加上注解后,重新启动项目。再次发起请求
可以看到,加上@Data
注解后,响应内容变正常了,后台也不报警告了~