gpt4 book ai didi

java - Tomcat 返回错误版本的文件

转载 作者:行者123 更新时间:2023-11-28 23:45:59 25 4
gpt4 key购买 nike

我在 tomcat 上有两个项目。两者都是网络应用程序。一个充当服务器,另一个充当客户端。客户端应用程序依赖服务器应用程序获取数据。它向服务器发出数据请求,服务器以数据作为序列化的 java 对象进行响应。为了 sanitizer 客户端提供了一个 stub (从服务器流式传输的相同类)。

最近,该项目在一台测试服务器上进行了更新。更新安排后工作正常但有一个问题。将应用程序在浏览器中保留 10 到 15 分钟后,某个特定页面开始崩溃。在调查中,我发现对于该页面,客户端正在请求服务器获取一些数据,但服务器正在响应与客户端作为 stub 存在的同一类的旧版本。 在此 10 分钟超时之前不会发生此错误。服务器返回与客户端相同的类版本。在空闲超时后,我无法弄清楚 tomcat 从哪里获取该类的旧版本。 错误宝座是:

   `java.io.InvalidClassException: com.ABC.XYZ; local class incompatible:stream classdesc serialVersionUID = 6683390643574875053, local class serialVersionUID = 100`

为了缩小错误范围,我明确定义了该类 100L 的 serialVersionUID。

   `serialVersionUID = 100L`

在超时之前,来自服务器和客户端的 XYZ 类打印相同的 serialVersionUID = 100。但是在它崩溃的某个时间后,它显示 serialVersionUID 为 6683390643574875053,这是编译器为旧版本生成的 serialVersionUID。

有问题的服务器是 cantos6.3 上的 tomcat6.0 服务器。在过去的几年里,这种安排在生产以及各种其他测试环境中都取得了成功,因此代码没有问题。

如果需要,将提供更多详细信息。知道是什么原因造成的。提前致谢。

最佳答案

这是由于生产环境中的 Tomcat 损坏。清理并安装相同版本的 tomcat 解决了我们的问题。希望这能为有类似问题的人节省时间。

关于java - Tomcat 返回错误版本的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14476611/

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