gpt4 book ai didi

java - readobject 方法抛出 ClassNotFoundException

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:30:12 28 4
gpt4 key购买 nike

我正在尝试使用 Java 并想使用 Java 的客户端/服务器进行测试,以使客户端将自定义类(消息)的简单对象发送到服务器。问题是我一直在服务器端收到 ClassNotFoundException。

我认为其余的代码似乎没问题,因为其他对象(例如 String)可以毫无问题地通过。

我在客户端和服务器的不同位置有两个不同的 netbeans 项目。

他们每个人在各自的包下都有自己的 Message 类副本。消息类实现 Serializable。

在客户端,我尝试发送一个 Message 对象。

在服务器端,在调用 readObject 方法时,它似乎是从客户端的包而不是它自己的包中查找 Message 类。 printStackTrace 在服务器端显示:“java.lang.ClassNotFoundException: client.Message”

我什至还没有尝试转换或存储收到的对象。我遗漏了什么吗?

最佳答案

两边的包名和类名必须完全相同。 IE。编写一次,编译一次,然后给双方相同的副本。不要有单独的 server.Messageclient.Message 类,而是单个 shared.Message 类或类似的东西。

如果您可以保证相同的包/类名称,但不是总是完全相同的副本,那么您需要添加一个具有相同值的serialVersionUID 字段到有问题的类(class)。

package shared;

import java.io.Serializable;

public class Message implements Serializable {
private static final long serialVersionUID = 1L;

// ...
}

关于java - readobject 方法抛出 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2916107/

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