java - 没有找到适合响应类型和内容类型的 HttpMessageConverter [application/json;charset=UTF-8] 发生异常
问题描述
我试图在我的应用程序的其他模块中点击 Spring REST 端点。所以我尝试使用 REST 模板来获取用户列表,如下所示:
使用 REST 模板的 API 请求:
public List<LeadUser> getUsersBySignUpType(String type, String id) {
String adminApiUrl = adminApiBaseUrl+"/crm/v1/users/?type="+type+"&id="+id;
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(org.springframework.http.MediaType.APPLICATION_JSON);
HttpEntity entity = new HttpEntity(headers);
ResponseEntity<LeadUserList> response = restTemplate.exchange(
adminApiUrl, HttpMethod.GET, entity, LeadUserList.class);
return response.getBody().getUsersList();
}
LeadUserList 类:
public class LeadUserList {
private List<LeadUser> usersList;
public List<LeadUser> getUsersList() {
return usersList;
}
}
LeadUser 模型类:
public class LeadUser {
@JsonProperty("id")
private String id;
@JsonProperty("email")
private String email;
@JsonProperty("name")
private String name;
@JsonProperty("businessName")
private String businessName;
@JsonProperty("phone")
private String phone;
@JsonProperty("address")
private String address;
@JsonProperty("createdTime")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private Date createdTime;
@JsonProperty("updatedTime")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private Date updatedTime;
@JsonProperty("bookletSignups")
private BookletSignUp bookletSignUp;
@JsonProperty("eventSignups")
private EventSignUp eventSignUp;
@JsonProperty("infoSignups")
private InfoSignUp infoSignUp;
@JsonProperty("webinarSignups")
private WebinarSignUp webinarSignUp;
public LeadUser() {
}
}
API 端点控制器类:
@Controller
@Component
@RequestMapping(path = "/crm/v1")
public class UserController {
@Autowired
UserService userService;
@RequestMapping(value = "/users", method = GET,produces = "application/json")
@ResponseBody
public ResponseEntity<List<User>> getPartnersByDate(@RequestParam("type") String type,
@RequestParam("id") String id) throws ParseException {
List<User> usersList = userService.getUsersByType(type);
return new ResponseEntity<List<User>>(usersList, HttpStatus.OK);
}
}
虽然返回类型是来自 API 端点的 JSON,但我得到了上述异常。我在这里做错了什么?
例外:
Could not extract response: no suitable HttpMessageConverter found for response type [class admin.client.domain.LeadUserList] and content type [application/json]
解决方案
尝试以下附加设置,
httpHeaders.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
还修复你的交换电话,
ResponseEntity<List<LeadUser>> response = restTemplate.exchange(
adminApiUrl, HttpMethod.GET, entity, new ParameterizedTypeReference<List<LeadUser>>(){});
推荐阅读
- rx-java - RxJava:如何刷新定时缓冲区?
- r - 具有 integer64 数字的 dcast 的意外行为
- spring-boot - Gerrit - 错误:在文件中找到回车符(CR):gradle/wrapper/gradle-wrapper.jar
- racket - 如何在以下代码中使用多个“return”语句?
- angular - Angular 材质对话框 closeOnNavigation 源代码
- r - 要删除重复的行,除非列中存在 NA 值
- python - 为什么 list.remove() 在这个 for 循环中不起作用?
- java - 未选中复选框,即使我使用代码执行此操作
- html - 如何在网格系统中正确定位项目?
- sql - SQL Query 以获取具有同一表中主键且还指向其他主键的键的行?