У меня есть 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>