Jackson序列化/反序列化redHat问题

时间:2019-05-02 14:11:55

标签: java jackson

我有一个使用Jackson多态序列化的大型Web应用程序。 一切正常,直到我发布了最新版本。 我有一个抽象类,其中定义了类型和子类型。 我有一个扩展抽象类的类。 现在的问题。在本地(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”

谢谢你, 约翰

@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 {...}

0 个答案:

没有答案