0

エージェントのモビリティのコードを作成しました。ワイヤレス(ルーター経由)リンクでは正常に機能しますが、友人のラップトップでアドホックワイヤレス接続を作成すると失敗しました。これは私が得たエラーです: 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つのネットワーク接続で正常に動作したため、別のコンピューターと別の接続の同じソースで失敗しました。

  1. このエラーはどういう意味ですか?最初のケースでも発生したはずの脱セリ化エラー
  2. 接続のタイプ、つまりアドホックが問題の原因ですか?
  3. または、問題の原因となっているファイルアクセスコマンドを含むコードが原因ですか(最初のケースでなぜ機能したのですか)

ご協力いただきありがとうございます!

4

1 に答える 1

1

シリアル化されたオブジェクトの serialVersionUID は、他の JVM のクラスとは異なると思います。これには、固定の Long 値を指定します。Eclipse を使用している場合は、生成されたシリアル バージョン ID を、Serializable を実装するすべてのクラスに追加します。ソース コードを消去して再構築します。コマンドラインのみを使用している場合は、

serialver "AgentClass"

そこから生成された値を使用して、ソース コードを再コンパイルします。

于 2012-01-31T02:31:26.950 に答える