我有一个应该序列化的对象。 Atm我让它实现Serializable,但在运行时我得到了
Failed to marshal object with optimized marhshaller:{ $heresAhugeString$ }
Failed to serialize object: { $alsoHugeString$ }
java.io.IOException: Externalizable class doesn't have default constructor: interface java.io.Externalizable
Externalizable class doesn't have default constructor: interface java.io.Externalizable
java.io.Externalizable.<init>()
最后一个异常(java.io.Externalizable。()无限次) 我试图找到不可序列化的字段,但我只能看到它在序列化ConcurrentHashMap时抛出异常。我知道这不是太多的信息,但完整的堆栈跟踪是相当大的。 有关如何找出地图中哪个字段负责非序列化的任何提示?或者我应该添加哪些信息? 问候
答案 0 :(得分:-1)
我不知道您正在做什么类型的反序列化,但如果您在解组后不需要使用此字段,则必须将其设置为transient
。
如果您正在使用Java序列化,则可以使用transient
java关键字;如果您使用JPA,则可以使用@Transient
,如果使用Jackson,则可以使用@JsonIgnoreProperties