Olá
Eu tenho o seguinte bean para ser serializado com o java.beans.XMLEncoder:
public class Usuario {
public Usuario() {
super();
}
private Boolean bloqueado;
private String login;
private transient String senha;
...
O problema é que o atributo bloqueado não está sendo gravado no xml, enquanto a senha que não deveria ser gravado está.
Será que é um bug da vm (1.4.2_10?
Grato
Não tenho sua classe original, mas estou chutando que tenha havido o seguinte:
public class Usuario implements java.io.Serializable {
public Usuario() {
super();
}
private Boolean bloqueado;
private String login;
private transient String senha;
// o getter para uma propriedade do tipo Boolean (não 'boolean') deve
// começar por get, não por is. Is só funciona com o tipo 'boolean'.
public Boolean getBloqueado () { return bloqueado; }
public String getLogin() { return login; }
// se houver um getter, ele aparece no XML, mesmo sendo transient.
// você deve remover o getter para não aparecer no XML.
// public String getSenha() { return senha; }
public void setBloqueado(Boolean b) { bloqueado = b; }
public void setLogin(String s) { login = s; }
public void setSenha(String s) { senha = s; }
}
Thingol,
Obrigado pela resposta.
eu consegui fazer funcionar, a classe original era assim:
public class Usuario implements Serializable{
private static final long serialVersionUID = 493209925485690874L;
public Usuario() {
super();
}
private Boolean bloqueado;
private String login;
// transient deveria não permitir a serialização do mesmo :(
private transient String senha;
// sempre teve esse metodo, mas não gravava passou a grava qdo retirei o isBloqueado()
public Boolean getBloqueado() {
return bloqueado;
}
public boolean isBloqueado() {
return bloqueado.booleanValue();
}
public void setBloqueado(Boolean bloqueado) {
this.bloqueado = bloqueado;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
// retirei esse método, passou a não gravar em disco
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
grato