我得到以下异常,不知道为什么。。。
线程“main”组织中出现异常。springframework。网状物客户RestClientException:无法提取响应:在org上找不到响应类型[class com.avada.rest.UsersController$Users]和内容类型[application/json;charset=UTF-8]的合适HttpMessageConverter。springframework。网状物客户HttpMessageConverterExtractor。extractData(HttpMessageConverterExtractor.java:109)位于org。springframework。网状物客户RestTemplate。doExecute(RestTemplate.java:576)位于org。springframework。网状物客户RestTemplate。在org上执行(restemplate.java:529)。springframework。网状物客户RestTemplate。com上的getForObject(restemplate.java:236)。阿瓦达。RestUsersTest。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());
}
}
如果我注释掉“get all users”的测试代码,我就可以得到一个用户,没有问题。
我在这个代码中做错了什么?
P. S.-我可以通过浏览器调用getUser()
,json会恢复正常,所以我知道getUser()
正在工作...只是不能让RestTemboard
工作
原来是我的用户
类中的一个问题(更具体地说是列表中的
用户
类)
我更新了
User
类,在我认为可能导致异常的字段上使用@JsonIgnore
,并且能够通过此问题。
因此,对于可能遇到此问题的其他人,请检查您试图执行
getForObject
的对象,以确保所有内容都可以映射良好。
我在使用SpringREST模板时遇到以下错误,但我已经为json响应定义了jackson。 当我使用rest客户端查询url时,我也得到了良好的响应。 rest模板配置:
使用Spring,使用以下代码: 我得到 pojo的一个片段:
我试图得到下面给出的带有SpringRest模板的响应实体。我得到了下面的错误, 代码: 我在这篇文章中尝试将媒体类型设置为Application/json。但还是一样的错误。 完整跟踪:
我有以下几点建议: 当我对它执行cucumber测试时,我得到以下异常: 我有一些其他的测试和其他具有相同注释的POJO,它们工作起来没有任何问题。我真的一点也不知道出了什么问题。 感谢任何建议!
问题内容: 使用spring,使用以下代码: 我懂了 pojo的片段: 问题答案: 从Spring的角度来看,没有一个通过注册的实例可以将内容转换为对象。感兴趣的方法是。上述所有回报的实现,包括。 由于没有人可以读取您的HTTP响应,因此处理失败,并出现异常。 如果你能控制服务器响应,修改设置到,或东西匹配。 如果您不控制服务器响应,则需要编写和注册自己的(可以扩展Spring类,see 及其子类
org.springframework.web.client.未知内容类型异常:无法提取响应:没有找到适合响应类型[类net.minidev.json.JSONObject]和内容类型[应用程序/json]的HttpMessageConzer endpoint Url还返回JSONObject,因此不知道为什么不匹配