JAX RS获取对象列表

时间:2015-06-05 11:58:05

标签: java json jax-rs

尝试使用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)。

1 个答案:

答案 0 :(得分:4)

问题在于:

@XmlRootElement
public class User {
    ...
}

你的User类现在是ListUsersRestController的内部类,似乎JAXB无法编组内部类(因为它们更像是ListUsersRestController的实例成员,而不是真正的类)。要么将它外部化为普通类,要么将其static

@XmlRootElement
public static class User {
    ...
}