0

我已经为代理的移动性编写了代码。它适用于无线(通过路由器)链接但是当我用我朋友的笔记本电脑创建一个 Ad-Hoc 无线连接时它失败了。这是我得到的错误: Jan 27, 2012 12:06:37 PM jade.core.mobility.AgentMobilityService$CommandSourceSi nk handleInformMoved SEVERE: Error creating agent on destination container. Abort transfer. An I/O er ror occurred during de-serialization [nested java.io.InvalidClassException: jade .core.Agent$1; local class incompatible: stream classdesc serialVersionUID = -85 03980205419088695, local class serialVersionUID = -6369687405671300436] 由于程序在一个网络连接上运行良好,它在另一台计算机和不同连接上使用相同的源失败。

  1. 这个错误是什么意思?如果在第一种情况下也应该出现反序列化错误
  2. 连接类型(即 Ad-Hoc)是问题的根源吗?
  3. 或者是由于代码,其中包括导致问题的文件访问命令(那么为什么它在第一种情况下起作用)

谢谢你的帮助!

4

1 回答 1

1

我认为序列化对象的 serialVersionUID 与其他 JVM 上的类不同。为此,请给出一些固定的 Long 值。如果您使用的是 Eclipse,则将生成的序列版本 ID 添加到每个实现 Serializable 的类。清理并重建源代码。如果您只是使用命令行,请执行

serialver "AgentClass"

并使用从中生成的值并重新编译源代码。

于 2012-01-31T02:31:26.950 回答