Javax WS Response добавляет «тип» в объект ответа - PullRequest
0 голосов
/ 07 мая 2019

У меня есть конечная точка, написанная на 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 (через Почтальона или Curl) дает следующий ответ:

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

Я не использовал свойство "type" ни в одном из DTO, тогда как оно добавляется. Я также записал в JSON String представление ответа DTO с помощью GSON непосредственно перед возвратом ответа, который выглядит следующим образом.

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

Как свойство "type" попало внутрь ответа? Где я ошибся в своем подходе?

Если детали, представленные в вопросе, недостаточны, дайте мне знать, какие дополнительные требуются.

...