【问题标题】:Deserialized object instance without class definition没有类定义的反序列化对象实例
【发布时间】:2009-07-02 21:56:53
【问题描述】:

任何知道从二进制 java 序列化对象创建 java 对象实例的工具/脚本/程序/什么的人?

我没有 .class 文件,所以我不能 (afaik) 简单地创建一个 ObjectInputStream 并从那里加载它。

此对象具有默认的序列化机制,我正在尝试调试我们遇到的问题。

有人吗?

【问题讨论】:

  • 如何得到一个没有 .class 文件的序列化对象?
  • eeerhmmm... 历史悠久。曾几何时,一个软件开发人员......哦.. .nevermind.
  • 好的,我找到了 .class 文件,它们位于 .jar“文件”(如预期的那样)中,恰好位于数据库中 :) 我是关于更改问题的。从 blob 获取文件 :)
  • .jar 文件存储在数据库中吗?我以为我都听到了。
  • Oracle 支持 RUNNING jarfiles 存储在数据库中......哦,太高兴了 :)

标签: java serialization


【解决方案1】:

最近在JavaWorld上有一篇关于格式的比较详细的帖子……可能值得一读。

链接:http://www.javaworld.com/community/node/2915

【讨论】:

  • 是的,类似的东西。我知道有一些工具,如 asm 或其他字节码操作工具,但我以前从未使用过它们,所以我不知道什么是最好的工具
【解决方案2】:

我觉得你想要完成的和this post很相似

【讨论】:

  • 呃?...答案是什么?使用对象序列化/反序列化?我没有 .class 文件
  • 答案是从 URL 获取 .class 文件。
【解决方案3】:

使用正确的名称和serialVersionUID 创建一个类。实施readObject。使用ObjectInputStream.readFields 获取ObjectInputStrem.GetFields

【讨论】:

  • 我遇到了 InvalidClassException。我想我需要知道正确的serialVersionUID 是什么。线程“main”中的异常 java.io.InvalidClassException: com.o.a.I;枚举描述符具有非零 serialVersionUID:12885773312
  • 没有类如何知道正确的serialVersionUID?
猜你喜欢
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
相关资源
最近更新 更多