我有一个使用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 {...}