当前位置: 首页 > 知识库问答 >
问题:

如何追踪Akka序列化失败的根本原因?

隆飞宇
2023-03-14

从Akka中获取序列化错误,如下所示,如何包装Akka消息中的不可序列化成员/字段?异常确实命名了不能序列化的成员值(在com.our.member.object),但该对象本身包含许多嵌套成员,并且错误消息似乎很少提供关于不能序列化的违规嵌套对象的线索:

2018-05-24T06:30:51.897Z错误VCA-Akka.actor.default-dispatcher-4Akka.remote.EndpointWriter-未能使用序列化程序[class Akka.remote.Serialization.MessageContainerSerializer]序列化远程消息[类Akka.actor.Actor.ActorSelectionMessage]。临时关联错误(关联保持活动)Akka.remote.MessageSerializer$SerializationException:未能使用序列化程序[class Akka.remote.Serialization.MessageContainerSerializer]序列化远程消息[class Akka.Actor.ActorSelectionMessage]。在Akka.remote.MessageSerializer$.Serialize(MessageSerializer.scala:62)在Akka.remote.EndpointWriter.$AnonFun$SerializeMessage$1(Endpoint.Scala:895)在Scala.util.DynamicVariable.WithValue(DynamicVariable.Scala:58)在Akka.remote.EndpointWriter.SerializeMessage(Endpoint.Scala:895)在在Akka.actor.actor.aroundReceive$(actor.scala:513)在Akka.remote.endpointactor.aroundReceive(endpoint.scala:511)在Akka.remote.endpointactor.aroundReceive(endpoint.scala:452)在Akka.actor.actorcell.receiveMessage(actorcell.html" target="_blank">scala:519)在Akka.actor.actorcell.invoke(actorcell.scala:488)在位于Akka.dispatch.forkjoin.forkjoinpool$workqueue.runtask的forkjoinpool.java:1339)(forkjoinpool.java:1339)在akka.dispatch.forkjoin.forkjoinpool.runworker(forkjoinpool.java:1979)在akka.dispatch.forkjoin.forkjoinworkerthread.run(forkjoinworkerthread.run(forkjoinworkerthread.java:107)由09)在java.io.objectOutputStream.writeObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)在java.io.objectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)在toutputStream.java:1178)在java.io.objectoutputStream.WriteObject(objectoutputStream.java:348)在akka.serializati在scala.runtime.java8.jfunction0$mcv$sp.apply(jfunction0$mcv$sp.java:12)在scala.util.dynamicvariable.withvalue(dynamicvariable.scala:58)在akka.serialization.javaserializer.tobinary(serializer.scala:313)在akka.remote.serializer.messageContainerSerializer.serializer.scala:37)在tobinary(MessageContainerSerializer.scala:26)位于Akka.remote.MessageSerializer$.serialize(MessageSerializer.scala:47)...17个公共帧被省略

共有1个答案

戈安翔
2023-03-14

我今天得到了这个错误,这个错误的原因是没有将“Implements Serializable”添加到message类中。错误消息和堆栈跟踪在帮助我实现这一点方面是绝对无用的。

 类似资料:
  • 当你把一个普通的 JavaScript 对象传给 Vue 实例的data选项,Vue 将遍历此对象所有的属性,并使用Object.defineProperty把这些属性全部转为 getter/setter。Object.defineProperty 是 ES5 中一个无法 shim 的特性,这也就是为什么 Vue 不支持 IE8 以及更低版本浏览器的原因。 这些 getter/setter 对用户

  • 我正在试着调试下面的错误信息,由于错误不是打印出来的根本原因,所以很难调试这里的问题是什么。我尝试改变超时,但问题似乎没有恢复。 下面是我的application.conf

  • 我正在尝试使用apache camel jackson xml对xml进行反序列化,然后发生了一些奇怪的事情,我无法解释。这是我正在尝试反序列化的xml(它是简单的xmltd v xml文件): 这是我的POJO: 电视。Java语言 程序Java语言 Credits.java 其他POJO并不重要。下面是路由配置: 使用此设置和我在开始时提供的xml,会发生以下异常: 通用域名格式。faster

  • 所以我有一个带有一些字段的对象。。。 将其序列化为JSON,如下所示: 稍后,当我需要读取这个json文件时,我尝试这样做: 我得到的错误是: 文件中的JSON是大意如下的东西: 当它试图导入主机的ArrayList时,它似乎会窒息,但它能够毫无问题地将它们写出来。 有谁能给我一些建议,让我的导入工作没有问题吗?

  • 在构建我的android应用程序期间,我遇到以下错误: 我没有得到任何代码行,甚至没有遇到问题的文件。我有很多未完成的更改(愚蠢的我),我不想回滚 - 但我完全不知道如何找出问题所在。

  • 我想追踪连续的高点,如这张照片所示,在熊猫的时间序列中。见下图: 熊猫怎么能做到这一点? 如果你想玩一个真实的例子,你可以下载股票的价格,说“MSFT”,然后用“close”作为例子。有多种方法可以下载股票价格,但这里有一种: