我有一台使用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");
}
答案 0 :(得分:1)
QueryClass
必须实施java.io.Serializable
。确保其非原始的非String
成员也可以。通常,您无需执行任何工作来实现该接口。好的文章是here。