[problemas] - msg de erros nÃo compreensivas

GRAVE: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Dao.MovimentacaoDAO
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Dao.MovimentacaoDAO

GRAVE: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Dao.MovimentacaoDAO
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Dao.MovimentacaoDAO
 
.........

Caused by: java.io.NotSerializableException: Dao.MovimentacaoDAO

.........

29/07/2011 08:28:02 org.apache.catalina.session.StandardManager startInternal
GRAVE: Exception loading sessions from persistent storage
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Dao.MovimentacaoDAO

...........

Caused by: java.io.NotSerializableException: Dao.MovimentacaoDAO

...........

Amigos queria saber se alguem pode me ajudar neste erro simples, mas nao consigo resolver … alguem tem alguma ideia !!!

Um objeto pertencendo a uma determinada classe pode não ser serializável se:
a) Sua classe não for marcada como Serializable,
e/ou
b) Algum atributo dessa classe não for Serializable.

Se você sabe que algum dos atributos dessa classe não é Serializable, mas ele não precise ser serializado por algum motivo, declare-o como Transient.

Seguindo o que o entanglement disse, a classe MovimentacaoDAO pode não estar indicada como implements Serializable ou algum atributo que você não serialize não está descrito como Transient

Não entendi muito bem, + aqui esta o meu DAO e BEAN do movimentacao.

DAO


public class MovimentacaoDAO extends DAO {

    public MovimentacaoDAO() { }

    public Movimentacao getMovimentacao(int ID) throws SQLException { }

    public void add(Movimentacao generic) throws SQLException {}

    public void remove(int ID) throws SQLException { }

    public void update(Movimentacao generic) throws SQLException { }

    public List<Movimentacao> getAllMovimentacoes(int ID) throws SQLException { }

    private Movimentacao populate(ResultSet rs) throws SQLException {}

}

BEAN

public class MovimentacaoBean implements Serializable {

    //Atributos
    private MovimentacaoDAO dao = new MovimentacaoDAO();
    private Movimentacao movimenta = new Movimentacao();
    private List<Movimentacao> movimentacoes;

    private List<Movimentacao> viewAgendamentosList;
    private List<Movimentacao> viewPendenciasList;
    private ViewDAO vDAO = new ViewDAO();
    
    private Manifestacao maniID = new Manifestacao();
    private ManifestacaoDAO maniDAO = new ManifestacaoDAO();
    
    public void nova() {
        movimenta = new Movimentacao();
    }

    public Movimentacao selecionar(int codigo) throws ClassNotFoundException, SQLException {
        movimenta = dao.getMovimentacao(codigo);
        return movimenta;
    }

    public void inserir() {
        try {
            Integer id = (Integer) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("ID");
            movimenta.setManifestacao(new Manifestacao(id));
            movimenta.setStatusMovimentacao(1);
            dao.add(movimenta);
            Msgs(1, "Cadastro", "Cadastrado com Sucesso!");
        } catch (SQLException ex) {
            Msgs(3, "Erro", "Cadastro não Efetuado!");
            Logger.getLogger(SetorBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void alterar() {
        try {
            movimenta.setStatusMovimentacao(2);
            dao.update(movimenta);
            Msgs(1, "Resposta", "Respondido com Sucesso!");
        } catch (SQLException ex) {
            Msgs(3, "Erro", "Resposta não Efetuado!");
            Logger.getLogger(SetorBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void deletar() {
        try {
            dao.remove(movimenta.getId());
            Msgs(1, "Deletar", "Deletado com Sucesso!");
        } catch (SQLException ex) {
            Msgs(3, "Erro", "Delete não Efetuado!");
            Logger.getLogger(SetorBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public Manifestacao getManiID() throws SQLException {
        Integer id = (Integer) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("ID");
        maniID = maniDAO.getManifestacao(id);
        return maniID;
    }

    public void setManiID(Manifestacao maniID) {
        this.maniID = maniID;
    }

    public Movimentacao getMovimenta() {
        return movimenta;
    }

    public void setMovimenta(Movimentacao movimenta) {
        this.movimenta = movimenta;
    }

    public List<Movimentacao> getMovimentacoes() throws SQLException {
        Integer id = (Integer) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("ID");
        movimentacoes = dao.getAllMovimentacoes(id);
        return movimentacoes;
    }

    public void setMovimentacoes(List<Movimentacao> movimentacoes) {
        this.movimentacoes = movimentacoes;
    }
   
    //Agendamento e Pendencias - Getters and Setters
    public List<Movimentacao> getViewAgendamentosList() throws ClassNotFoundException, SQLException {
        viewAgendamentosList = vDAO.getAgendamentoDia();
        return viewAgendamentosList;
    }

    public void setViewAgendamentosList(List<Movimentacao> viewAgendamentosList) {
        this.viewAgendamentosList = viewAgendamentosList;
    }
 
    public List<Movimentacao> getViewPendenciasList() throws ClassNotFoundException, SQLException {
        viewPendenciasList = vDAO.getPendecias();
        return viewPendenciasList;
    }

    public void setViewPendenciasList(List<Movimentacao> viewPendenciasList) {
        this.viewPendenciasList = viewPendenciasList;
    }

Será que tem alguma coisa haver ae ???

public class MovimentacaoDAO extends DAO implements Serializable

Não entendi muito bem, + aqui esta o meu DAO e BEAN do movimentacao.

DAO


public class MovimentacaoDAO extends DAO {

    public MovimentacaoDAO() { }

    public Movimentacao getMovimentacao(int ID) throws SQLException { }

    public void add(Movimentacao generic) throws SQLException {}

    public void remove(int ID) throws SQLException { }

    public void update(Movimentacao generic) throws SQLException { }

    public List<Movimentacao> getAllMovimentacoes(int ID) throws SQLException { }

    private Movimentacao populate(ResultSet rs) throws SQLException {}

}

BEAN

public class MovimentacaoBean implements Serializable {

    //Atributos
    private MovimentacaoDAO dao = new MovimentacaoDAO();
    private Movimentacao movimenta = new Movimentacao();
    private List<Movimentacao> movimentacoes;

    private List<Movimentacao> viewAgendamentosList;
    private List<Movimentacao> viewPendenciasList;
    private ViewDAO vDAO = new ViewDAO();
    
    private Manifestacao maniID = new Manifestacao();
    private ManifestacaoDAO maniDAO = new ManifestacaoDAO();
    
    public void nova() {
        movimenta = new Movimentacao();
    }

    public Movimentacao selecionar(int codigo) throws ClassNotFoundException, SQLException {
        movimenta = dao.getMovimentacao(codigo);
        return movimenta;
    }

    public void inserir() {
        try {
            Integer id = (Integer) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("ID");
            movimenta.setManifestacao(new Manifestacao(id));
            movimenta.setStatusMovimentacao(1);
            dao.add(movimenta);
            Msgs(1, "Cadastro", "Cadastrado com Sucesso!");
        } catch (SQLException ex) {
            Msgs(3, "Erro", "Cadastro não Efetuado!");
            Logger.getLogger(SetorBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void alterar() {
        try {
            movimenta.setStatusMovimentacao(2);
            dao.update(movimenta);
            Msgs(1, "Resposta", "Respondido com Sucesso!");
        } catch (SQLException ex) {
            Msgs(3, "Erro", "Resposta não Efetuado!");
            Logger.getLogger(SetorBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void deletar() {
        try {
            dao.remove(movimenta.getId());
            Msgs(1, "Deletar", "Deletado com Sucesso!");
        } catch (SQLException ex) {
            Msgs(3, "Erro", "Delete não Efetuado!");
            Logger.getLogger(SetorBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public Manifestacao getManiID() throws SQLException {
        Integer id = (Integer) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("ID");
        maniID = maniDAO.getManifestacao(id);
        return maniID;
    }

    public void setManiID(Manifestacao maniID) {
        this.maniID = maniID;
    }

    public Movimentacao getMovimenta() {
        return movimenta;
    }

    public void setMovimenta(Movimentacao movimenta) {
        this.movimenta = movimenta;
    }

    public List<Movimentacao> getMovimentacoes() throws SQLException {
        Integer id = (Integer) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("ID");
        movimentacoes = dao.getAllMovimentacoes(id);
        return movimentacoes;
    }

    public void setMovimentacoes(List<Movimentacao> movimentacoes) {
        this.movimentacoes = movimentacoes;
    }
   
    //Agendamento e Pendencias - Getters and Setters
    public List<Movimentacao> getViewAgendamentosList() throws ClassNotFoundException, SQLException {
        viewAgendamentosList = vDAO.getAgendamentoDia();
        return viewAgendamentosList;
    }

    public void setViewAgendamentosList(List<Movimentacao> viewAgendamentosList) {
        this.viewAgendamentosList = viewAgendamentosList;
    }
 
    public List<Movimentacao> getViewPendenciasList() throws ClassNotFoundException, SQLException {
        viewPendenciasList = vDAO.getPendecias();
        return viewPendenciasList;
    }

    public void setViewPendenciasList(List<Movimentacao> viewPendenciasList) {
        this.viewPendenciasList = viewPendenciasList;
    }

Será que tem alguma coisa haver ae ???

BOA MANO, entao OBRIGADO, vou estar aki e se tudo der certo … ENCERRO o chamado aki !!!

valewwww

Não respondo dúvidas por MP, está na minha assinatura, ok?

Um pouco de java básico:

Java dá suporte para que você consiga “salvar” instâncias de objetos.
Isto se chama serialização de objetos (há também serialização de arquivos).
A interface Serializable, do pacote java.io é quem provê os métodos que são interpretados pela JVM e que permitem que o estado do objeto seja mantido intacto quando um método que o serializa é invocado.

Como assim?

Pense que você possui um programa que gerencia emails (gmail). A cada período de tempo, ao criar uma nova mensagem, ele salva uma cópia no rascunho. Como email é um objeto e o texto, remetente e destinatário são seus atributos, caso não fosse possível persistir estes dados, o rascunho seria inútil (desconsidere banco de dados), uma vez que você pode fechar o programa e abri-lo (isso mata qualquer possibilidade de manter na memória) e o rascunho ainda estar lá.

Normalmente as APIs que fazem persistência, como o Hibernate, implementam métodos que forçam a serialização de objetos, pois, nem sempre a ação de persistir os dados no SGBD é imediata ou concluída com sucesso. Caso o hibernate precise, por alguma razão qualquer, o objeto estará lá, intacto.

Mais informações, http://www.google.com.br e procure por serialização de objetos em java.

[quote=drsmachado]Não respondo dúvidas por MP, está na minha assinatura, ok?

Um pouco de java básico:

Java dá suporte para que você consiga “salvar” instâncias de objetos.
Isto se chama serialização de objetos (há também serialização de arquivos).
A interface Serializable, do pacote java.io é quem provê os métodos que são interpretados pela JVM e que permitem que o estado do objeto seja mantido intacto quando um método que o serializa é invocado.

Como assim?

Pense que você possui um programa que gerencia emails (gmail). A cada período de tempo, ao criar uma nova mensagem, ele salva uma cópia no rascunho. Como email é um objeto e o texto, remetente e destinatário são seus atributos, caso não fosse possível persistir estes dados, o rascunho seria inútil (desconsidere banco de dados), uma vez que você pode fechar o programa e abri-lo (isso mata qualquer possibilidade de manter na memória) e o rascunho ainda estar lá.

Normalmente as APIs que fazem persistência, como o Hibernate, implementam métodos que forçam a serialização de objetos, pois, nem sempre a ação de persistir os dados no SGBD é imediata ou concluída com sucesso. Caso o hibernate precise, por alguma razão qualquer, o objeto estará lá, intacto.

Mais informações, http://www.google.com.br e procure por serialização de objetos em java.[/quote]

Desculpe, quanto ao MP.
E obrigado pela explicaçao. Realmente entendi. Mas acontece que o erro persiste … como disse não faço ideia do que seja !

Camarada, tenta debuggar e ver onde o erro é gerado (em qual método, qual momento).

ele da essa msg aki OHH

29/07/2011 10:15:03 org.apache.catalina.session.StandardSession writeObject
AVISO: Cannot serialize session attribute movimentacaoBean for session 595C78C22B2C7C9EA62FFAC4901B87A2
java.io.NotSerializableException: Dao.MovimentacaoDAO

so lembrando que o sistema tah funcionando. Mas ele faz ae essa reclamaçao… ja revirei tudo … ate debugguei e nda…
nao sei se tem alguma coisa haver, mais ele pode ta dando conflito com outro metodo ou coisa do tipo … ???

Você ainda não conseguiu acertar a classe Dao.MovimentacaoDAO. Alguma coisa nela não é serializável, portanto está dando esse problema. Veja todas as classes que estão sendo referidas, por exemplo, via List<>.

Entendo, deixei ate de mão isso. Vou procurar terminar logo o sistema e dpois eu vejo com mais minuciosidade os possiveis erros. Mas obrigado, vou DEBUGGAR aki.

VOU POSTAR COMO RESOLVIDO POR ENQUANTO, DPOIS EU VOLTO A VERIFICAR ISSO… JA SURGIRAM OUTROS PROBLEMAS…