On Tue, 30 Nov 1999, Daniela Pistelli Gomes wrote:
>             Nao consegui interpretar esta Exception, alguem tem dica?
> 
>  Exception: SERVLET-IO_exception: IOException occurred
>  Exception Stack Trace:
>  java.io.NotSerializableException: GM.prPessoa

        Daniela, NotSerializableException eh arremessada sempre que voce
tenta gravar num ObjectOutputStream algum objeto que nao implementa a
interface Serializable. 
        Isso vale para todos os objetos que o objeto que voce quiser
serializar conhece: todos devem implementar Serializable, ou estarem em
campos marcados como transient, que indica que voce nao deseja seja
serializado quando da serializacao deste objeto.
        
        Para deixar as coisas bem claras:

        public class Writable implements Serializable{
        
                protected transient Hashtable sortedByName;
                private Vector theElements;
        
                public Writable(){}
                public Writable( Vector elements ){
                        theElements = elements;
                        /* Nao sei se isso faz exatamente o que eu
                           preciso, mas voces podem conferir pra mim */
                        Enumeration set = elements.elements();
                        while( set.hasMoreElements() ){
                                Element el = (Element)set.nextElement();
                                sortedByName.put( el.name, el );
                        }
                }
        }

        Esta classe pode ser serializada (ela implementa Serializable e
tem um construtor sem argumentos publicamente acessivel ).
        
        Por outro lado, se esta classe tiver dentro dela alguma coisa do
tipo 
        
        public class NonWriteable {
                
                private Object[] elements;
        
                public NonWriteable(){}
        }

        acho que eh facil ver que esta classe nao pode ser serializada,
pois nao implementa a interface Serializable.
        
        Perguntinha:
        
        Voces acham que a classe abaixo pode ou nao ser serializada?
        
        public class Question extends Vector implements Serializable{
                
                private String question;

                /** Sem acesso ao construtor sem argumentos. */
                private Question(){}
                /** Construtor publico. 
                 * Necessario para construir este objeto.
                 */
                public Question( String question ){
                        super();
                        this.question = question;
                }
                        
                /** Funcao de hash muuuiiiito eficiente... */
                public int hashCode(){ return 0; }
                /** Adaptacao utilissima da toString() de Vector... */
                public String toString(){ return "?"; }
        }
}
        
        Respostas com explicacao serao bem vindas.
        Se a pergunta for interessante, e voces quiserem saber a resposta,
mandem mail. Eu nao me estenderei mais se nao ouver interesse.
        
        Espero que isso resolva a duvida da Daniela.
        []'z

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                                                    Luis Campos de Carvalho
               System Administrator at ECB -- Escola Paulista de Medicina

"Keep It Simple, Stupid"
                           -- Andrew Tanenbaum, 'Computer Networks', 1996
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a