尝试使用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)。
最佳答案
问题在这里:
@XmlRootElement
public class User {
...
}
您的
User
类现在是ListUsersRestController
的内部类,并且JAXB似乎无法编组内部类(因为它们更像是ListUsersRestController
的实例成员,而不是真实的类)。要么将其外部化为普通类,要么将其设为static
:@XmlRootElement
public static class User {
...
}