首页 > 解决方案 > Javax WS 响应在响应实体中添加“类型”

问题描述

我有一个用 Java WS 编写的端点。使用的 DTO 类如下:

public class MainResponseDTO extends PaginationResponseDTO {

    private List<MainDTO> mainDTOs;

    public List<MainDTO> getMainDTOs() {
        return mainDTOs;
    }

    public void setMainDTOs(List<MainDTO> mainDTOs) {
        this.mainDTOs = mainDTOs;
    }
}

这个类扩展了一个 PaginationResponseDTO

public class PaginationResponseDTO {

    private int page;
    private int limit;
    private long size;

    public int getPage() {
        return page;
    }
    public void setPage(int page) {
        this.page = page;
    }
    public int getLimit() {
        return limit;
    }
    public void setLimit(int limit) {
        this.limit = limit;
    }
    public long getSize() {
        return size;
    }
    public void setSize(long size) {
        this.size = size;
    }
}

这就是我发送回复的方式。

@POST
@Path("/demo")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response getExpiredAndDueDocumentsWithPagination() {

    MainResponseDTO response = new MainResponseDTO();

    // Used this for diagnosis
    logger.debug(new Gson().toJson(response));

    return Response.ok().entity(response).build();
}

但是,访问上述 URL 的响应(通过 Postman 或 Curl)给出以下响应:

{
    "type": "mainResponseDTO",
    "limit": 0,
    "page": 0,
    "size": 0
}

我没有在任何一个 DTO 中使用“类型”属性,那么它是如何附加的。在返回响应之前,我还使用 GSON 记录了响应 DTO 的 JSON 字符串表示,如下所示。

{"page":0,"limit":0,"size":0}

“type”属性是如何进入响应的?我的方法哪里出错了?

如果问题中提供的详细信息不充分,请让我知道需要的其他详细信息。

标签: javajava-ws

解决方案


推荐阅读