m0linas
18-10-2010, 13:33
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....
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;
}
}
Questo è l'errore:
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)
e questo il pezzo di codice dove prendo gli elementi uno ad uno e li invio:
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();
Grazie in anticipo a chi mi chiarirà le idee :fagiano:
Per quanto avevo capito, credevo bastasse implementare serializable....
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;
}
}
Questo è l'errore:
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)
e questo il pezzo di codice dove prendo gli elementi uno ad uno e li invio:
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();
Grazie in anticipo a chi mi chiarirà le idee :fagiano: