尝试使用JAX RS我想用我的数据实现CRUD操作。首先,我想获得json formate中的对象列表。
@Path("/users")
public class ListUsersRestController {
@GET
@Produces("application/json")
public List<User> getUsers(){
List<User> users = new ArrayList<>();
users.add(new User("Dean", "Winchester"));
users.add(new User("Sam", "Winchester"));
users.add(new User("Bobby", "Singer"));
return users;
}
@XmlRootElement
public class User {
@XmlElement(name="first-name")
private String firstName;
@XmlElement(name="last-name")
private String lastName;
public User(){
}
public User(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
}
}
当我请求我的URI时,我总是得到500服务器错误,并且日志文件中没有任何错误(我正在使用glassfish)。
答案 0 :(得分:4)
问题在于:
@XmlRootElement
public class User {
...
}
你的User
类现在是ListUsersRestController
的内部类,似乎JAXB无法编组内部类(因为它们更像是ListUsersRestController
的实例成员,而不是真正的类)。要么将它外部化为普通类,要么将其static
:
@XmlRootElement
public static class User {
...
}