Java的。读取ObjectOutputStream发送的对象的基类

时间:2015-09-13 15:27:54

标签: java inheritance serialization server client

我有3个模块:

  • 服务器
  • 客户端
  • serverAPI(在两个模块中均可用作.jar文件)

我还有一个Frame类(在serverAPI模块中):

public class Frame implements Serializable {
    private final FrameTypesInterface type;
    private final Object[] objects;
    ...
}
  • serverAPI模块具有UserAPI类。
  • 服务器模块具有扩展UserAPI的User类。

当客户端连接并尝试登录时,请求将发送到服务器。然后,服务器创建用户并将其放入框架并将其发回。

server.User user = new server.User(); // User extends serverAPI.UserAPI
Frame frame = new Frame(LOGIN, new Object[] { user });
objectOutputStream.writeObject(frame)

现在,在客户端模块方面,我正在尝试接收帧:

frame = (Frame)objectInputStream.readObject();

收到帧但是也抛出了异常:

(ClassNotFoundException) Class not found: server.User

实际上在客户端服务器上。用户不可用,但不是它(基类)serverAPI.UserAPI可用。

我想保持当前的概念(在服务器端创建用户扩展UserAPI并在客户端接收UserAPI)。我怎么能这样做?

0 个答案:

没有答案