0

マルチスレッドを使用してクライアントと通信する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メンバーも同様であることを確認してください。通常、インターフェイスを実装するために作業を行う必要はありません。良い記事はここにあります。

于 2012-04-07T04:00:52.200 に答える