gpt4 book ai didi

Java可序列化类生成的uuid不适用于ehcache

转载 作者:行者123 更新时间:2023-12-01 05:09:00 25 4
gpt4 key购买 nike

我正在开发一个项目,我需要缓存一些类,这些类需要这些类实现可序列化。我收到的错误类似于“classcastException:类 demo.x.t.y.A(我序列化的任何类)无法转换为类 demo.x.t.y.A”。我的意思是类(class)彼此完全相同。

经过深度尝试,当我使用java自己的实现可序列化的类而不是我的可序列化类时,我发现程序可以工作。我使用 netbeans 网站中建议的插件在 netbeans 中生成了 uuid。我很确定原因是我自己生成的 uuid,但为什么 uuid 不起作用?生成 uuid 后我不会对类进行任何更改。

在serialversionUUID之上的java默认类中,有一个与此完全相同的注释“/**使用JDK 1.0.2中的serialVersionUID来实现互操作性*/”。这是否意味着我应该使用jdk1.0.2生成uuid?我尝试了很多事情并对任何解决方案持开放态度。感谢您的回复。

为了帮助可能遇到相同问题的开发人员,我有一个我不想使用的解决方案。您可以单独缓存每个变量,而不是缓存整个类。

由于这是我的第一个问题,对于我在编写问题时犯的任何错误表示歉意。

编辑: 我正在使用servlet。当我运行 servlet 时,它工作正常,但在另一次部署后它失败。

最佳答案

该问题可能不是由串行版本 UID 引起的,而是由类加载器问题引起的。您可能尝试将一个类由类加载器 A(EHCache 使用的类加载器)加载的类的对象强制转换为由类加载器 B(您的 Web 应用程序的类加载器)加载的类。

如果没有更多细节,很难说出您应该做什么,但请确保您的类可以由且仅一个类加载器加载。例如,如果该类同时位于 Web 应用程序的类路径 (WEB-INF/lib) 和服务器类路径中,则可能是问题所在。

关于Java可序列化类生成的uuid不适用于ehcache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com