Ich habe ein Array, das ich aus einer Datenbank ResultSet erstellt habe. Ich versuche es zu serialisieren, damit ich es über einen Socket-Stream senden kann. Im Moment bekomme ich eine Fehlermeldung, dass das Array nicht serialisierbar ist. Der Code, den ich habe, ist dort unten, der erste Teil der Klasse ist ein Objekt für das Array zu erstellen:Serialisieren Sie ein Objekt-Array, das über Sockets gesendet wird
class ProteinData
{
private int ProteinKey;
public ProteinData(Integer ProteinKey)
{
this.ProteinKey = ProteinKey;
}
public Integer getProteinKey() {
return this.ProteinKey;
}
public void setProteinKey(Integer ProteinKey) {
this.ProteinKey = ProteinKey;
}
}
Der Code zum Auffüllen des Arrays:
public List<ProteinData> readJavaObject(String query, Connection con) throws Exception
{
PreparedStatement stmt = con.prepareStatement(query);
query_results = stmt.executeQuery();
while (query_results.next())
{
ProteinData pro = new ProteinData();
pro.setProteinKey(query_results.getInt("ProteinKey"));
tableData.add(pro);
}
query_results.close();
stmt.close();
return tableData;
}
Und um den Code zu nennen dies ist :
Und der Code recieving dies:
List dataList = (List) input_stream.readObject();
Kann mir jemand helfen, dieses Array zu serailisieren. Alles, was ich in Foren finden kann, sind einfache Arrays (EG. Int []).
Ich habe versucht, die serializable zu der Klasse und der UID-Nummer hinzuzufügen, aber java.lang.ClassNotFoundException: socketserver.ProteinData
Fehlermeldung erhalten. Hat jemand jetzt warum?
Danke für jede Hilfe.
Ich kann kein Array in Ihrem Code sehen ... nur Liste –
Wenn die 'readJavaObject()' Methode hier die vollständige Methode ist, werden Sie andere Probleme auf der ganzen Linie haben, wie es Ihnen scheint verwenden eine Liste auf Klassenebene, um Ergebnisse für jeden Methodenaufruf zurückzugeben. –