【发布时间】:2018-01-03 01:42:32
【问题描述】:
我有这个简单的示例以 JSON 格式返回用户列表。它适用于 XML,但不适用于 JSON。 不知道我做错了什么。还有什么我需要做的吗? 我使用 jersey-quickstart (maven) 创建了项目,并取消了对支持 JSON 的依赖项的注释。
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-binding</artifactId>
</dependency>
在我的用户域中,我有 @XmlRootElement 注释,并且只有 2 个字段。 ID(长)和用户名(字符串)
这就是我的资源:
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<User> getUsers(){
return userService.getAllUsers();
}
这就是我的服务:
public List<User> getAllUsers(){
List<User> users = new ArrayList<User>();
User u1 = new User(1l, "user_1");
User u2 = new User(2l, "user_2");
User u3 = new User(3l, "user_3");
users.add(u1);
users.add(u2);
users.add(u3);
return users;
}
通过将 APPLICATION_JSON 更改为 APPLICATION_XML 可以正常工作并返回带有用户列表的 xml。使用 APPLICATION_JSON 我得到了这个:
SEVERE: MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=java.util.List<com.wordpress.whiteboardcoding.agenda.domain.User>.
不确定除了取消注释 jersey-media-json-binding 之外是否还有其他事情要做。有什么想法吗?
试图找出是否有不同之处,因为它不再使用 jersey-media-moxy。
谢谢!
【问题讨论】:
标签: java rest jaxb jackson jersey-2.0