当前位置: 首页 > 面试题库 >

readobject方法抛出ClassNotFoundException

杨俊茂
2023-03-14
问题内容

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

我认为其余代码似乎还不错,因为其他对象(例如String)可以顺利通过。

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

他们每个人在各自的程序包下都有自己的Message类副本。html" target="_blank">消息类实现了Serializable。

在客户端,我尝试通过发送消息对象。

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

我什至没有尝试投射或存储收到的对象。我有什么遗漏的吗?


问题答案:

包名和类名的两侧必须 完全相同 。即写一次,编译一次,然后给双方 相同的
副本。没有单独的server.Messageclient.Message类,但只有一个shared.Message类或类似的东西。

如果可以保证相同的程序包/类名,但不一定要始终具有 完全相同 的副本,则需要为所serialVersionUID涉及的类添加具有相同值的字段。

package shared;

import java.io.Serializable;

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

    // ...
}


 类似资料:
  • 问题内容: 我陷入了这个非常奇怪的问题。在客户端中,我传递的对象是 在服务器中,我正在读取对象 我的问题是为什么我会出现EOF异常。我对对象输入流的理解是,当我调用readObject()时应该阻塞直到获得对象,这样才能知道是否达到了eof?请帮忙! 这就是我创建对象流的方式 另外,在我写完对象并刷新之后,我应该关闭流。我不会关闭它,因为对象是从代码的不同部分开始一个接一个地定期编写的。 问题答案

  • 本文向大家介绍Java ObjectInputStream readObject()方法(带示例),包括了Java ObjectInputStream readObject()方法(带示例)的使用技巧和注意事项,需要的朋友参考一下 ObjectInputStream类方法 readObject()方法在java.io包中可用。 readObject()方法用于从此ObjectInputStream

  • 我在我的项目中使用了来自codebutler的android-websockets库。但是在执行方法时遇到了问题。代码如下: 05-11 17:58:19.873:W/System.err(29443):java.net.SocketException:套接字关闭 05-11 17:58:19.873:W/System.err(29443):at libcore.io.posix.recvFrom

  • 请看下面的代码: 当我运行时,我得到以下异常: 线程“主”java.util.regex.PatternSyntaxException异常:指数4附近无与伦比的收盘“)” 0.3港元)预订:virginiawong@fahkco.com.hk4)FCR 根据我的理解,我必须对参数'(',')'进行转义,我试图这样做(看看代码中的注释部分)没有任何异常,但是我添加到字符串的换行符似乎没有出现。

  • 问题内容: 例如,框架/ JDK中的许多方法可能会抛出 但这未在方法签名中指出(因为这是通常保留给检查异常的做法)。我想证明在方法sigs中声明RuntimeExceptions有很多好处(例如类似于静态类型检查)。我喝醉了还是其他? 问题答案: 我不会在签名中声明未经检查的异常,因为它会误导该API的用户。是否必须显式处理该异常不再明显。 在javadoc中声明它是一种更好的方法,因为它允许某人

  • 问题内容: 阅读的JavaDoc ,我碰到了一个奇怪的方法签名;我一生中从未见过: 乍一看,我想知道通用异常怎么可能发生,因为您不能这样做(here和here)。再三考虑,这开始变得有意义,因为这里只是绑定…,但是供应商本身确切知道泛型之前应该是什么类型。 但是第二行打给我: 是完整的通用异常类型。 然后: 什么世界呢 这 是什么意思? 已绑定在方法签名中。 这将以任何方式解决通用异常限制吗? 为