簡體   English   中英

java.io.NotSerializableException :: ObjectOutputStream:writeObject方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM