Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Akka-对象序列化期间堆栈溢出错误_Java_Scala_Serialization_Neo4j_Akka - Fatal编程技术网

Java Akka-对象序列化期间堆栈溢出错误

Java Akka-对象序列化期间堆栈溢出错误,java,scala,serialization,neo4j,akka,Java,Scala,Serialization,Neo4j,Akka,我的问题持续了两天以上。当我在参与者之间交换消息时,我指责JVM堆栈溢出 “我的邮件”是一个具有多个链接的对象(链接列表中链接在一起的子对象超过10000个)。即,具有Neo4J关系的对象 错误是: java.lang.StackOverflowError at java.io.Bits.putLong(Bits.java:108) at java.io.ObjectOutputStream$BlockDataOutputStream.writeLong(ObjectOutput

我的问题持续了两天以上。当我在参与者之间交换消息时,我指责JVM堆栈溢出

“我的邮件”是一个具有多个链接的对象(链接列表中链接在一起的子对象超过10000个)。即,具有Neo4J关系的对象

错误是:

java.lang.StackOverflowError
    at java.io.Bits.putLong(Bits.java:108)
    at java.io.ObjectOutputStream$BlockDataOutputStream.writeLong(ObjectOutputStream.java:1928)
    at java.io.ObjectOutputStream.writeLong(ObjectOutputStream.java:788)
    at java.util.Date.writeObject(Date.java:1303)
    at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
有人对此有什么解决办法吗


谢谢

问题的可能候选对象是一个有自身引用的对象。给定域的表达式,我怀疑一个孩子有一个包含自身的链表,或者一个循环引用。也就是说,它链接到的其中一个节点依次具有指向它的链接。

您使用的是
java.util.LinkedList
,还是您自己的自定义链接列表?如果是后者,则需要为其编写一个自定义的
writeObject()
方法,以避免在没有递归的情况下发生递归。

嗨,这不会发生,我在发布问题之前复习了很多。对象作为上一点和下一点的地理参考点的轨迹相互关联。第一点之前没有点,最后一点没有下一点。这个答案不正确。循环对象图是通过序列化专门处理的。具体地说,它们不会导致递归。那么知道对象之间仍然没有递归有什么问题呢?@ricardo看到我的答案了吗?把你的评论和问题附加到错误的答案上没有多大意义。也许你应该添加neo4j和java标签以引起更多人的注意…@Christian谢谢,我会的。你能详细说明一下你的数据结构吗?IMHO Neo4j关系不可序列化,因为它们是连接到图形数据库的活动对象?您可以只存储他们的id,但另一端的图形存储必须与原始的图形存储完全同步。似乎这个问题很常见!请看@Michael_Hunger:我实际上从Neo4J中提取了数据之间的关系。我使用传递对象(到)的概念。在这些对象中,我在它们之间创建循环依赖关系。但问题不在于这些循环依赖。似乎影响关系的深度是因为它们中的一些充当了链表。我没有实现任何数据结构。我只使用scala集合。@ricardogobbo好的,所以您需要查看堆栈跟踪,看看这个明显的递归涉及哪些类,并将这些信息发布在这里。我相信这就是解决方案。我意识到有些链接类似于LinkedList。换句话说,我明白你说的话xD。现在开始测试!