小编Del*_*ser的帖子

现在,当对象具有不同的serialVersionUID时,如何反序列化数据库中持久存在的对象

我的客户端有一个oracle数据库,一个对象通过objOutStream.writeObject持久化为blob字段,该对象现在有一个不同的serialVersionUID(即使对象没有变化,可能是不同的jvm版本),当他们尝试反序列化时抛出异常:

java.io.InvalidClassException: CommissionResult; local class incompatible: 
 stream classdesc serialVersionUID = 8452040881660460728, 
 local class serialVersionUID = -5239021592691549158
Run Code Online (Sandbox Code Playgroud)

它们serialVersionUID从一开始就没有为固定值赋值,所以现在有些东西改变了抛出异常.现在他们不想丢失任何数据,为此我认为最好的方法是读取对象,对它们进行反序列化,然后通过XMLEncoder再次保存它们,以避免将来出现类似当前"类不兼容"错误的错误.

显然有对2个不同的值serialVersionUID持续了那个对象,所以我想读取数据,尝试用一个值,如果失败则与其他值尝试,要做到这一点我已经试过改变serialVersionUID类使用 的ASM api.我已经能够更改值,但问题是如何激活类上的更改,因此当它被反序列化时,objInpStr.readObject()将我的修改版本的类与我的特定serializedVersionUID.我做了一个测试类来模拟真实的环境,我拿一个对象(它具有不同serialVersionUID问题的对象Reservation属性)对象名称属性是 CommissionResult:

public class Reservation implements java.io.Serializable {


    private CommissionResult commissionResult = null;

}


public class CommissionResult implements java.io.Serializable{



}


import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.commons.SerialVersionUIDAdder;

public class SerialVersionUIDRedefiner extends ClassLoader {


    public void workWithFiles() {
        try {
            Reservation res = …
Run Code Online (Sandbox Code Playgroud)

java serialization serialversionuid

12
推荐指数
2
解决办法
1万
查看次数

WAMP:错误的http:// localhost/in urls,错误的wamp项目链接

我有一个问题,从来没有发生在我身上的Wamp,找不到什么问题.我的www文件夹中有一些项目(运行Windows 7).

我的主机文件已127.0.0.1 localhost取消注释该行

当我从主Wamp面板页面转到http://localhost/http://127.0.0.1/点击项目名称如"mysite"时,链接只指向"mysite"而不是"http://localhost/mysite"

因此我看不到任何网站,我该怎么办?

wamp localhost local wampserver

12
推荐指数
2
解决办法
4万
查看次数

缓存内存如何工作?

今天我在计算机组织课上,老师谈到了一些有趣的事情.谈到为什么缓存有效时,他说:

for (i=0; i<M; i++)
   for(j=0; j<N; j++)
      X[i][j] = X[i][j] + K; //X is double(8 bytes)
Run Code Online (Sandbox Code Playgroud)

用第二行改变第一行是不好的.你对此有何看法?为什么会这样?

c optimization caching computer-architecture

9
推荐指数
3
解决办法
5842
查看次数

将Java字节码转换为其他表示和编程语言

我正在寻找将Java字节码转换为其他编程语言的方法/工具/项目,或者至少在结构化表示中(如XML).理想的开源,自然.

我看过ASM,"字节码操作和分析框架".它不支持翻译到其他表示,但看起来像是这样一个项目的良好基础.可悲的是,他们的用户页面上列出的项目都没有.

java translation decompiling bytecode

7
推荐指数
1
解决办法
3333
查看次数

使用GNU链接器时"文件无法识别"

我可能做错了什么,做个新手.你能帮帮我吗?

我在C中编写了一个名为hello.c的简单Hello World程序,并运行以下命令:

gcc -S hello.c
Run Code Online (Sandbox Code Playgroud)

那产生了hello.s.然后我用GNU汇编程序使用该文件as:

as hello.s
Run Code Online (Sandbox Code Playgroud)

哪个产生了非可执行文件a.out,哪些仍然需要链接,我明白了吗?

我尝试通过使用链接它ld,如下所示:

ld a.out
Run Code Online (Sandbox Code Playgroud)

但是得到以下错误:

a.out: file not recognized: File truncated
Run Code Online (Sandbox Code Playgroud)

ld删除我的文件.

这是一个x86 Ubuntu系统.我究竟做错了什么?非常感谢!

linker-errors gnu-toolchain

7
推荐指数
2
解决办法
1万
查看次数

数值优化

我想知道哪种Integer或Float类型最快..
我认为字节比整数更快,因为它的范围更小.
有些人告诉我..在某些情况下,整数比一个字节快.

第二个问题:
GPU正在走向世界统治...
所以我问自己:Double可以比整数更快......因为FPU
所以专家在哪里?:)

double optimization computer-science integer

4
推荐指数
1
解决办法
384
查看次数

将中缀转换为后置修复表达式,关联性总是从左到右?

如果是,那为什么会这样呢?不正确的关联性对后缀表达有效吗?

c stack postfix-notation associativity

-2
推荐指数
1
解决办法
1692
查看次数