|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2008
Città: PoggibonZi
Messaggi: 140
|
[JAVA] classe non serializzabile
Scusate, ho una domanda veloce da farvi....Perchè ottengo una NotSerializableException quando provo a trasferire una arraylist di oggetti della seguente classe da un server a un client??
Per quanto avevo capito, credevo bastasse implementare serializable.... Codice:
import java.net.*;
import java.io.Serializable;
public class P2PFile implements Serializable
{
private static final long SerialVersionUID = 1L;
private String nome;
private InetAddress owner;
public P2PFile(String nome, InetAddress ip)
{
this.nome=nome;
this.owner=ip;
}
public InetAddress getOwner()
{
return owner;
}
public String toString()
{
return nome;
}
}
Codice:
java.io.NotSerializableException: P2PFile
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at P2PThread.run(P2PThread.java:67)
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: P2PFile
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at P2PClient.run(P2PClient.java:68)
Caused by: java.io.NotSerializableException: P2PFile
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at P2PThread.run(P2PThread.java:67)
Codice:
ObjectOutputStream outLista = new ObjectOutputStream(soc.getOutputStream());
for (int i=0;i<P2PServer.filesArray.size();i++)
{
P2PFile f = P2PServer.filesArray.get(i);
outLista.writeObject(f);
}
outLista.close();
soc.close();
__________________
Ho felicemente trattato con: Isomarcus, NLDomy, cipacci. Intel e2180 @ 3.1Ghz + Arctic Cooling Freezer 7 ~ MSI P35 Neo2-FR ~ Geil Black Dragon @ 970Mhz 4-4-4-12 ~ ASUS 8800GT 512Mb ~ OCZ StealthXtream 500W |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
|
...nella mia immensa ignoranza direi che forse InetAddress non è serializzabile?...
|
|
|
|
|
|
#3 | ||
|
Member
Iscritto dal: Feb 2008
Città: PoggibonZi
Messaggi: 140
|
Quote:
Quote:
__________________
Ho felicemente trattato con: Isomarcus, NLDomy, cipacci. Intel e2180 @ 3.1Ghz + Arctic Cooling Freezer 7 ~ MSI P35 Neo2-FR ~ Geil Black Dragon @ 970Mhz 4-4-4-12 ~ ASUS 8800GT 512Mb ~ OCZ StealthXtream 500W |
||
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
cosi a occhio direi di provare a ricompillare ( lo so ... lo hai già fatto
io ho provato il codice che hai postato e non mi da nessun tipo di errore. molto probabilmente gli oggetti P2PFile che popolano la lista P2PServer.filesArray non sono serializzabili cmq prova a postare + codice
__________________
Acer 5940G{Intel Core i7 Q720 Quadri motore; 8Gb DDR3; ATI Radeon HD 4650 1024MB; 500Gb hdd} |
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Feb 2008
Città: PoggibonZi
Messaggi: 140
|
Quote:
Ho cancellato la classe P2PFile, e ne ho riscritta un'altra con solo la variabile String, e la serializzava. Quindi ho aggiunto anche il campo InetAddress ip, e la serializzava. Quindi ho aggiunto tutti gli altri metodi, e ho così ottenuto una classe uguale identica a P2PFile ma con un altro nome....e la serializza! Non so per quale arcano motivo continuava a darmi quell'errore, comunque ora è risolto. Mistero della fede.... ![]() Grazie comunque per l'aiuto, ciao ciao!
__________________
Ho felicemente trattato con: Isomarcus, NLDomy, cipacci. Intel e2180 @ 3.1Ghz + Arctic Cooling Freezer 7 ~ MSI P35 Neo2-FR ~ Geil Black Dragon @ 970Mhz 4-4-4-12 ~ ASUS 8800GT 512Mb ~ OCZ StealthXtream 500W |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:35.





















