0

我有一个使用 MultiThread 与客户端通信的 JAVA 服务器。除了将客户端对象发送到服务器线程时,服务器的一切都正常工作。我已将问题缩小到以下代码行。

错误是由于代码中的这一行:queryClass= ((QueryClass)inStream.readObject()); //这里读取数据,QueryClass是一个序列化的类。

.我收到上面的错误。QueryClass 是另一个类,我对其进行了序列化:这是我的代码。

public void run(){
   try{
    ObjectOutputStream outStream=new ObjectOutputStream(clientSocket.getOutputStream());
    ObjectInputStream inStream=new ObjectInputStream(clientSocket.getInputStream());

         while(true){
       sleep(1);
       queryClass=  ((QueryClass)inStream.readObject());    //Read data here
       serverNotification.UpdateNotification("Performing .. operation for TaxOfficer");

    }           
}catch(Throwable thrown){
         System.err.println("Exception Caught : "+thrown+" deleting thread");

}
4

1 回答 1

1

QueryClass必须实施java.io.Serializable。确保它的非原始非String成员也这样做。通常你不需要做任何工作来实现接口。一个很好的文章是here

于 2012-04-07T04:00:52.200 回答