序列化:找不到所需序列化对象的不可序列化组件

时间:2017-03-14 15:11:36

标签: java serialization serializable externalizable

我有一个应该序列化的对象。 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时抛出异常。我知道这不是太多的信息,但完整的堆栈跟踪是相当大的。 有关如何找出地图中哪个字段负责非序列化的任何提示?或者我应该添加哪些信息? 问候

1 个答案:

答案 0 :(得分:-1)

我不知道您正在做什么类型的反序列化,但如果您在解组后不需要使用此字段,则必须将其设置为transient

如果您正在使用Java序列化,则可以使用transient java关键字;如果您使用JPA,则可以使用@Transient,如果使用Jackson,则可以使用@JsonIgnoreProperties