Сериализация Джексона / десериализация проблемы RedHat - PullRequest
0 голосов
/ 02 мая 2019

У меня есть большое веб-приложение, которое использует полиморфную сериализацию Джексона. Все работало нормально, до моего последнего выпуска. У меня есть абстрактный класс, где я определяю тип и подтипы. У меня есть класс, который расширяет абстрактный класс. Теперь проблема. Все работало нормально на локальном (windows) и серверном (redhat) jboss. Я сделал некоторые изменения в коде, в службах, не связанных с json, и после этого в локальной (windows) jboss работает нормально, но на redhat у меня есть эта ошибка:

org.codehaus.jackson.map.JsonMappingException: Невозможно создать экземпляр orange.catv.ejb.shared.livehp.model.editorialserviceplan.LogicalChannelNumber, проблема: экземпляры абстрактных типов могут создаваться только с дополнительной информацией о типе в [Source: org.apache.catalina.connector.CoyoteInputStream@378e6be2; строка: 1, столбец: 1]

Странно, что на моем локальном сервере это работает. Кто-нибудь сталкивался с такой ошибкой, и как вы ее исправили. Последний вариант - откатить все изменения и повторить попытку в linux, а затем добавить их постепенно.

Le: у моего json есть поле "objectType"

Спасибо, John

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType")
@JsonSubTypes({
        @Type(value = VideoLogicalChannelNumber.class, name = Constant.VIDEO_LOGICAL_CHANNEL_NUMBER_OBJECT_TYPE),
        @Type(value = InteractiveLogicalChannelNumber.class, name = Constant.INTERACTIVE_LOGICAL_CHANNEL_NUMBER_OBJECT_TYPE),
        @Type(value = VideoInteractiveLogicalChannelNumber.class, name = Constant.VIDEO_INTERACTIVE_LOGICAL_CHANNEL_NUMBER_OBJECT_TYPE),
        @Type(value = MosaicLogicalChannelNumber.class, name = Constant.MOSAIC_LOGICAL_CHANNEL_NUMBER_OBJECT_TYPE)
})
public abstract class LogicalChannelNumber implements ResourceWithId, Serializable {...}


public class VideoLogicalChannelNumber extends LogicalChannelNumber implements Serializable {...}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...