Неправильный формат объекта rest jaxrs json (выглядит как список) при использовании pojo с поддержкой java .io.Serializable - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть pojo, который я загружаю в базу данных с помощью hibernate.

    @Entity
    @XmlRootElement
    @IdClass(EventCause.class)
    public class EventCause implements Serializable {

Я возвращаю список этих pojos в API отдыха

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    @Path("/{imsi}") 
    public Response getAllEventAndCauseCodeByImsi(@PathParam("imsi") final long imsi) {
        final List<EventCause> imsiEventList = callDataDao.getEventAndCauseCodeByIMSI(imsi);
        return Response.status(200).entity(imsiEventList).build();
    }

Однако jaxrs Json преобразование в остальном API не приводит к маршалингу этого в стандартный формат объекта

Это выглядит как json ответ, но в формате….

[[12, 4097, "RR C CONN SETUP-REJECT из-за перегрузки"], [0, 4098, "S1 SIG CONN SETUP-SUCCESS"]]

вместо что-то вроде

[EventCause: {"eventId": "12", "auseCode ":" 4097 "," description ":" RR C CONN SETUP-REJECT DUE TO OVERLOAD "}, EventCause: { "eventId": "0", "auseCode ":" 4098 "," description ":" S1 SIG CONN SETUP-SUCCESS "}]

Почему это так. Примечание. Я прошел еще один тестовый POJO через тот же API без «реализует Serializable», и он выходит в стандартном объектном формате json, поэтому похоже, что эта возможность Serializable вызывает эту разницу.

Информация env: java 1.8, работает на wildfly 18 (пробовал Wildfly 10 и то же самое) jaxrs в pom ....

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.1.1</version>
</dependency>

1 Ответ

0 голосов
/ 26 февраля 2020

Обнаружена проблема, не было связано с сериализацией или @ Entity

Я не отображал явным образом свой ответ БД на ответ pojo, который я пометил как @XMLRootElement, поэтому счетчик JaxRS неправильно его упорядочил и это был просто возврат массива, который возвращала БД.

Я не смотрю на более точное решение, когда ответы отображаются непосредственно в мои форматы pojo, и это строго соответствует REST API, который мне требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...