封装springboot返回值+枚举出现org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
代码实现
1.定义返回值类ResultData
public class ResultData { private String code; private String message; private java.util.List<Object> List; public ResultData(String code, String message, java.util.List<Object> list) { this.code = code; this.message = message; List = list; } public ResultData(CTPEnum retsuccess, ArrayList<Object> list) { this.code = retsuccess.getCode(); this.message = retsuccess.getMessage(); List = list; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public java.util.List<Object> getList() { return List; } public void setList(java.util.List<Object> list) { List = list; } }
2.定义枚举类CTPEnum
public enum CTPEnum { PARAMETER("0001","参数为空"), RETURNDATA("0002","数据为空"), ok("ok","成功"); private String code; private String message; CTPEnum(String code, String message) { this.code=code; this.message=message; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
3.定义请求controller
@RestController public class TestController { // @CrossOrigin(origins = {"http://localhost:8081", "null"}) @RequestMapping("/hello") public ResultData hello() { System.out.println("4444"); HashMap<Object, Object> hashMap = new HashMap<>(); ArrayList<Object> list = new ArrayList<>(); hashMap.put("name","liu"); hashMap.put("pk","0000001"); list.add(hashMap); ResultData resultData = new ResultData(CTPEnum.ok, list); return resultData; }
}
4.启动程序
5.发送请求
6.问题+解决
Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation]
解决方法一:封装的返回类ResultData中没有加set个get方法,加上就可以了。
解决方法二:封装的返回类ResultData上加上@Data注解。
1.在pom.xml中加入lombok依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> </dependency>
2.在ResultData类上加上@Data注解