Java Serializable混淆

时间:2014-01-16 03:25:02

标签: java java-ee serialization

最近,我们的项目必须重新设计。但是当我使用JAVA的界面Serializable时,我花了很多时间。

现在,有两个程序:A和B.

  1. A处于离线状态,其功能是将JSON数据转换为 C 类。
  2. 然后序列化C并将其存储在redis中(现在C是对象)
  3. B获取对象,对其进行反序列化,然后将其转换为C
  4. 但它不起作用。在日志信息中,我发现, A和B中的C类必须具有相同的目录。也就是说,当我将C放入A时使用包dir“com.hello.src .a“,在B with package dir”com.world.src.b“中,B程序将抛出一个ClassNotFoundException,因为B的JVM使用dir”com.hello.src.a“找到C!

    当我使用相同的包dir将C放入A和B时,它可以工作。我想知道如果有更好的方法来解决这个问题。当我反序列化时,我将B程序中的包dir特定为C类(就像我告诉B的JVM使用包dir“com.world.src.b”找到C)

1 个答案:

答案 0 :(得分:1)

将类从一个包复制到另一个包是完全没有意义的,并且是导致这样的问题的原因。确定您希望将课程C放在哪个包中并将其保留在那里,在原处使​​用它。