【发布时间】:2017-08-05 00:13:00
【问题描述】:
我得到了一个应该被序列化的对象。 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 时引发异常。我知道这不是很多信息,但完整的堆栈跟踪非常大。 任何提示如何找出地图中的哪个字段负责非序列化?或者我应该添加哪些信息? 问候
【问题讨论】:
-
这对你有帮助吗 -
Externalizable class doesn't have default constructor -
但是不知道是指哪个类...
-
@Abubakkar 是正确的。序列化时,需要默认构造函数来实例化序列化的类。你没有。
-
异常不会“无限次出现”。映射中的每个键或值都会出现一次。查看堆栈跟踪的末尾。
-
@EJP 我认为不是。但有可能。在调试器中有一行 cause = {NoSuchMethodException@129509} 并且它有一个具有相同行的孩子,依此类推......(id始终相同)
标签: java serialization serializable externalizable