Enviando uma lista de um cliente android para um servidor em java

Estou desenvolvendo uma aplicação onde preciso enviar algumas informações de um dispositivo android e salvar em um servidor. Quando eu envio a lista que esta do lado do cliente para o lado servidor essa minha classe Server dispara a exception ClassNotFoundException. Segue os codigos abaixo

public class Server {
private ServerSocket server;
private Socket client;
private int PORTA;

public Server(int PORTA) {
    this.PORTA = PORTA;
}

public void conectar() {
    try {
        server = new ServerSocket(PORTA);
        System.out.println("Rodando servidor na porta " + PORTA);

        while (true) {
            client = server.accept();
            System.out.println("Cliente conectado");
            new Thread(new ClientListenner(client)).start();
        }

    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
}

//////////////////////////////////////////////////////
public static void main(String() args) {
    new Server(8083).conectar();

}
//////////////////////////////////////////////////////

class ClientListenner implements Runnable {
    private ObjectOutputStream output;
    private ObjectInputStream input;
    private List<Estate >lista;

    public ClientListenner(Socket client) throws IOException {
        output = new ObjectOutputStream(client.getOutputStream());
        input = new ObjectInputStream(client.getInputStream());
    }

    @Override
    public void run() {
        try {
            lista = (ArrayList<Estate>)input.readObject();
            System.out.println("PASSOU");
            output.close();
            input.close();
        } catch (IOException | ClassNotFoundException e) {
            System.out.println("ERROR: "+e.getMessage()+"n"+e.getCause());
        }
    }
    public void lerLista() {
    
    }

}

}

public class Cliente extends AsyncTask<Void, Void, Void> {
public ObjectOutputStream output;
public ObjectInputStream input;
public List<Estate> lista;
private String IP = "192.168.0.101";

public Cliente(List<Estate> lista){
    this.lista = lista;
}

@Override
protected Void doInBackground(Void... params) {
    try {
        Log.v("test", "Tentando conexão...");
        Socket client = new Socket(IP, 8083);
        Log.v("test", "Conectado");

        output = new ObjectOutputStream(client.getOutputStream());
        input = new ObjectInputStream(client.getInputStream());

        output.writeObject(lista);
        output.flush();


        output.close();
        input.close();
        client.close();
    }catch(IOException e){Log.v("test", e.getMessage());}
    return null;
}

}