我收到以下异常并且不确定原因......
线程中的异常" main" org.springframework.web.client.RestClientException:无法解压缩 响应:没有为响应类型找到合适的HttpMessageConverter [com.avada.rest.UsersController类用户]和内容类型 [application / json; charset = UTF-8] at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:109) 在 org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:576) 在 org.springframework.web.client.RestTemplate.execute(RestTemplate.java:529) 在 org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:236) 在com.avada.rest.UsersTest.main(UsersTest.java:18)
这是我的RestController:
@RestController
@RequestMapping("/users")
public class UsersController {
@RequestMapping(method = RequestMethod.GET)
public Users getUsers() {
Users users = new Users();
users.setUsers(ConstantsHome.userprofileMgr.getUsers(null));
return users;
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public User getUser(@PathVariable String id) {
return ConstantsHome.userprofileMgr.getUserByUserId(id, true, true);
}
public static class Users {
private List<User> users = new ArrayList<>();
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
}
这是我的测试类:
public class UsersTest {
private static RestTemplate template = new RestTemplate();
public static void main (String[] args) throws Exception {
// Get all users
String uri = "http://localhost:8080/IR360/rest/users";
UsersController.Users users = template.getForObject(uri, UsersController.Users.class);
System.out.println("Looping through users...");
for (User user : users.getUsers()) {
System.out.println("Name=" + user.getName());
}
// Get 1 user
uri = "http://localhost:8080/IR360/rest/users/admin";
User user = template.getForObject(uri, User.class);
System.out.println("Name for single user=" + user.getName());
}
}
如果我注释掉#34;获取所有用户&#34;的测试代码,我可以让单个用户没问题。
我在这段代码中做错了什么?
P.S。 - 我可以通过浏览器拨打getUsers()
,json回来了,所以我知道getUsers()
正在运行...只是无法让RestTemplate
工作< / p>
答案 0 :(得分:2)
我的Users
课程(更具体地说是User
中的List<User>
课程)是一个问题。
我使用User
类更新了我认为可能导致异常的字段@JsonIgnore
,并且我能够通过此问题。
因此对于可能遇到此问题的其他人,请检查您尝试执行getForObject
的对象,以确保所有内容都能正常映射。