Я пытаюсь отправить сериализованный объект Java с клиента на сервер через сокет, но на стороне сервера произошла ошибка приведения, и я не могу понять, почему.
Класс сериализуется ниже. (Я использую Eclipse, и этот класс в обоих клиентах
пакет и серверный пакет.)
package client; //it is "package server;" on server side
import java.io.Serializable;
public class Simple implements Serializable {
public String msg;
public Simple(){
msg = "simple";
}
}
на стороне клиента, я сделал:
Simple obj = new Simple();
Socket socket = new Socket(hostname, portNum);
ObjectOutputStream objOut = new ObjectOutputStream(socket.getOutputStream());
objOut.writeObject(obj);
objOut.flush();
objOut.close();
на стороне сервера я сделал:
//already accepted clientSocket
ObjectInputStream objIn = new ObjectInputStream(clientSocket.getInputStream());
Simple anObj = (Simple) objIn.readObject();
System.out.println("from server: " + anObj.msg);
objIn.close();
clientSocket.close();
Однако я получил ошибку:
Exception in thread "main" java.lang.ClassCastException: client.Simple cannot be cast to server.Simple at server.Server.main
Я пробовал что-то похожее с сервером и клиентом в одном пакете, и сериализация и инфляция работали. Буду очень признателен, если вы поможете мне выяснить, почему он здесь не работает.