This question already has answers here:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException

(2个答案)


2年前关闭。





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

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

.Am得到上面的错误。 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");

}

最佳答案

QueryClass必须实现java.io.Serializable。确保其非原始,非String成员也是如此。通常,您无需执行任何工作即可实现该接口。好的写作是here

09-08 06:17