【问题标题】:NotSerializableException only first timeNotSerializableException 只是第一次
【发布时间】:2014-06-06 15:12:12
【问题描述】:

我只是第一次在 objStream.writeObject(myobj) 中得到 NotSerializableException。

myobj 内部包含一个对象列表。 同样的 myobj,当它不是第一个时,可以很好地序列化。 请问有什么想法吗? 代码看起来有点像这样:

public class MyObj implements Serializable 
{
   private List<MyOtherObjects> objects;
};

for (myobj : myobjs) {
                byteOutputStream = new ByteArrayOutputStream();
                ObjectOutputStream objStream = new ObjectOutputStream(byteOutputStream);
                objStream.writeObject (myobj);
                objStream.flush(); 
                objStream.close();
                file.write(byteOutputStream.toByteArray());
...

堆栈跟踪:

DoCompute flush thread [XRXTransactionQueue-1-1402065645208--1569561033][1] where
  [1] java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1,156)
  [2] java.io.ObjectOutputStream.defaultWriteFields (ObjectOutputStream.java:1,509)
  [3] java.io.ObjectOutputStream.writeSerialData (ObjectOutputStream.java:1,474)
  [4] java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1,392)
  [5] java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1,150)
  [6] java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:326)
  [7] utils.DoCompute$FileHandler.flush (DoCompute.java:678)

【问题讨论】:

  • 你能添加一个堆栈跟踪吗
  • 啊,我的错! - 它在 writeObject() 中 - 但为什么它只发生在第一次。修改和添加堆栈跟踪
  • 当它不是第一个是什么意思?如果您以不同的顺序序列化相同的对象,它是否适合您,您可以为此添加代码吗?
  • 这看起来不像我以前见过的任何堆栈跟踪。例外在哪里列出?尝试创建一个minimal example来编译和演示这个问题。
  • 那是 jdb 堆栈跟踪。我的意思是,它只会为第一个 myobj 引发异常——它不是有问题的特定 myobj。如果我以不同的顺序序列化,它仍然是第一个失败的。我不能创建一个小例子——如果可以的话,它会更明显。只是想知道这是否意味着它总是发生在第一个对象上。

标签: java objectoutputstream notserializableexception


【解决方案1】:

你很可能有一些 MyOtherObjects,没有实现 Serializable,事实上 MyObj 实现了 Serializable,并不能保证它实际上可以被序列化,除非它的所有成员也可以被序列化。

检查 MyOtherObjects 的层次结构,在那里你应该找到一些不可序列化的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多