[英]java.io.NotSerializableException with ObjectOutputStream
[英]java.io.NotSerializableException:: ObjectOutputStream: writeObject method
我正在嘗試使用套接字將客戶端連接到服務器。
服務器代碼:
ServerSocket server = new ServerSocket(6780);
Socket clientSocket = server.accept();
ObjectInputStream fromClient= new ObjectInputStream(clientSocket.getInputStream());
ObjectOutputStream toClient = new ObjectOutputStream(clientSocket.getOutputStream());
客戶代碼:
Socket nodeSocket = new Socket(ServerIP, 6780);
ObjectInputStream fromServer = new ObjectInputStream(nodeSocket.getInputStream());
ObjectOutputStream toServer = new ObjectOutputStream(nodeSocket.getOutputStream());
toServer.writeObject(this);
當客戶端連接時,服務器將偵聽並接受客戶端連接。 但是,當我嘗試將類對象寫入服務器時,“ toServer.writeObject(this);” 它拋出
java.io.NotSerializableException: Peer
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at Peer.requestEntryNode(Peer.java:47)
at Peer.main(Peer.java:87)
同行是我的班級名字。
我試圖找出導致此異常的原因,它說需要寫入的對象必須是可序列化的。 我還嘗試從Peer類實現Serializable接口。 但這沒有幫助。
有人可以建議嗎?
確保您的類Peer
及其依賴項確實實現了java.io.Serializable
接口:
import java.io.Serializable;
public class Peer implements Serializable {
...
}
謝謝大家的答復。
我找到了解決方案。 我制作了Peer類來實現Serializable以及從Peer類引用的那些類。
ObjectOutputStream和ObjectInputStream沒有序列化。 所以我不能使它們成為類變量。 我聲明了它們對於每種方法都是本地的。
現在工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.