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]
---------------------------------------------------------------------