Salve a tutti. Sto realizzando a fini di studio una chat in java, ho scritto il client e il server in modo che si scambino messaggi da me definiti da una classe Messaggio nella quale metto tutte le info che mi servono

codice:
public class Messaggio implements Packet, Serializable{
    private int tipo;
    String contenuto;
    String privato; // contiene nick client destinatario
    String mittente; // contiene il nick mittente
    /** Creates a new instance of Messaggio
        prende in input solo il mittente*/
    public Messaggio(String m) { 
  ecc
  ecc
Per lo scambio di messaggi invece mi sono creato degli object i/o streams. Ecco la parte ad esempio del server

codice:
server = new ServerSocket( 5000, 100 );
Socket s1 = server.accept();
connection.getInetAddress().getHostName() );
input = new ObjectInputStream(
           connection.getInputStream() );
output = new ObjectOutputStream( connection.getOutputStream() );
                output.flush();
Messaggio s=new Messaggio("CHATSERVER",3,"Benvenuto,
 inserisci il tuo nickname"); // invio richiesta login
I problemi sorgono quando invece che inviare una stringa (che ho provato viene scambiata senza problemi) invio sullo stream un messaggio
codice:
output.writeObject(s);
// s istanza di Messaggio

e quando leggo sul client
Messaggio m=(Messaggio)input.readObject();
Mi viene lanciata una ClassNotFoundException, e non riesco a capire perchè dato che la classe messaggio è implementata tale e quale sia nel server che nel client.
:master:
Grazie per il vostro aiuto in anticipo.