Jersey REST API返回空对象

时间:2016-04-01 23:21:28

标签: java jersey

我有以下课程对象。

public class Course {
    private int id;
    private String name;
    private Person person;

    public Course(){

    }
    public Course(int id, String name, Person person){
        this.id = id;
        this.name = name;
        this.person = person;
    }

    public int getId() {
        return id;
    }


    public String getName() {
        return name;
    }


    public Person getPerson() {
        return person;
    }
}

我用一种方法创建了以下Service类。

public class DataService {

    public ArrayList<Course> getAllCourses(){

        ArrayList<Course> list = new ArrayList<>();
        list.add(new Course(101, "Introduction to Java", new Person(201, "Asish", "Goswami")));
        list.add(new Course(102, "Intermediate Java", new Person(202, "Amiyo", "Bagchi")));
        list.add(new Course(103, "Advanced Java", new Person(203, "Atul", "Prasad")));
        return list;
    }
}

我正在使用REST服务调用它。

@Path("/courses")
public class CourseService {


    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public ArrayList<Course> getAllCourses(){

    DataService service = new DataService();
    return service.getAllCourses()
    }
}

返回以下输出

[{},{},{}]

我不知道出了什么问题。任何帮助高度赞赏。

1 个答案:

答案 0 :(得分:0)

您需要将POJOMappingFeature设置为true才能让Jearsey将POJO的serialization支持到Json中。可以通过在部署描述符中设置init param来完成,如下所示:

<init-param>
    <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
    <param-value>true</param-value>
</init-param>

Here就是一个完整的例子。