Dúvida com Serialização

Galera, alguém pode me dizer onde está o erro nesta pequena implementação?

[code]package model;

import java.io.Serializable;

public class Vesa implements Serializable{
private int horizontal;
private int vertical;
private int id;

public Vesa(int horizontal, int vertical, int id) {
    this.horizontal = horizontal;
    this.vertical = vertical;
    this.id = id;
}

public Vesa() {}

public int getHorizontal() {return horizontal;}
public void setHorizontal(int horizontal) {this.horizontal = horizontal;}

public int getVertical() {return vertical;}
public void setVertical(int vertical) {this.vertical = vertical;}

public int getId() {return id;}
public void setId(int id) {this.id = id;}

}[/code]

[code]package Controler;

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import model.Vesa;

public class VesaDAO implements Serializable{
File flvesa = new File(“vesa.ser”);

FileOutputStream fos = null;
ObjectOutputStream oos = null;

FileInputStream fis = null;
ObjectInputStream ois = null;

List<Vesa> Lista = null;

public void Inserir(Vesa vesa) throws FileNotFoundException, IOException, ClassNotFoundException{
    if(flvesa.exists()){
        Lista = ListarTodos();
        Lista.add(vesa);
        ArmazenaAlteracao(Lista);
        JOptionPane.showMessageDialog(null, "Inserido com sucesso!");
    }else{
        fos = new FileOutputStream(flvesa);
        oos = new ObjectOutputStream(fos);
        Lista = new ArrayList();
        Lista.add(vesa);
        oos.writeObject(Lista);
        JOptionPane.showMessageDialog(null, "Inserido com sucesso!");
    }  
}

public void Excluir(int id) throws FileNotFoundException, IOException, ClassNotFoundException{
    if(flvesa.exists()){
        Lista = ListarTodos();
        
        for(Vesa v: Lista){
            if(v.getId()==id){
                Lista.remove(v);
                ArmazenaAlteracao(Lista);
                JOptionPane.showMessageDialog(null, "Excluído com sucesso!");
            }
        }
    }else{
        JOptionPane.showMessageDialog(null, "Não foi possível excluir!");
    }
}

public void Alterar(Vesa vesa) throws FileNotFoundException, IOException, ClassNotFoundException{
    if(flvesa.exists()){
        Lista = ListarTodos();
        
        for(Vesa v: Lista){
            if(v.getId()==vesa.getId()){
                Lista.get(Lista.indexOf(v)).setHorizontal(vesa.getHorizontal());
                Lista.get(Lista.indexOf(v)).setVertical(vesa.getVertical());
                ArmazenaAlteracao(Lista);
                
                JOptionPane.showMessageDialog(null, "Alterado com sucesso!");
            }
        }
    }else{
        JOptionPane.showMessageDialog(null, "Não foi possível alterar!");
    }
}

public List<Vesa> ListarTodos() throws FileNotFoundException, IOException, ClassNotFoundException {
    List<Vesa> Lista = null;
    if(flvesa.exists()){
        fis = new FileInputStream(flvesa);
        ois = new ObjectInputStream(fis);
        Lista = (List<Vesa>) ois.readObject();
    }
    return Lista;
}

private void ArmazenaAlteracao(List<Vesa> Lista) throws FileNotFoundException, IOException {
        oos = new ObjectOutputStream(new FileOutputStream(flvesa));
        oos.writeObject(Lista);
}

}[/code]

[code]package suportetv;

import Controler.VesaDAO;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Serializable;
import java.util.List;
import model.Vesa;

public class SuporteTV implements Serializable{

public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
    VesaDAO vdao = new VesaDAO();
    Vesa v1 = new Vesa(75, 75, 1);
    Vesa v2 = new Vesa(100, 100, 2);
    Vesa v3 = new Vesa(200, 200, 3);
    Vesa v4 = new Vesa(200, 100, 4);
    Vesa v5 = new Vesa(300, 200, 5);
    
    vdao.Inserir(v1);
    vdao.Inserir(v2);
    vdao.Inserir(v3);
    vdao.Inserir(v4);
    vdao.Inserir(v5);
    
    List<Vesa> vesa = vdao.ListarTodos();

    for(Vesa v: vesa){
        System.out.println(v.getId()+"  "+v.getHorizontal()+" x "+v.getVertical());
    }
}

}
[/code]

erro:

run:
Exception in thread “main” java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: model.Vesa
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at java.util.ArrayList.readObject(ArrayList.java:733)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at Controler.VesaDAO.ListarTodos(VesaDAO.java:75)
at Controler.VesaDAO.Inserir(VesaDAO.java:22)
at suportetv.SuporteTV.main(SuporteTV.java:20)
Caused by: java.io.NotSerializableException: model.Vesa
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at java.util.ArrayList.writeObject(ArrayList.java:710)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at Controler.VesaDAO.Inserir(VesaDAO.java:30)
at suportetv.SuporteTV.main(SuporteTV.java:13)
Java Result: 1